phydev->adjust_link(phydev->attached_dev);
break;
}
-@@ -830,7 +831,8 @@ void phy_state_machine(struct work_struc
+@@ -841,7 +842,8 @@ void phy_state_machine(struct work_struc
netif_carrier_on(phydev->attached_dev);
} else {
phydev->state = PHY_NOLINK;
}
phydev->adjust_link(phydev->attached_dev);
-@@ -842,7 +844,8 @@ void phy_state_machine(struct work_struc
+@@ -853,7 +855,8 @@ void phy_state_machine(struct work_struc
case PHY_HALTED:
if (phydev->link) {
phydev->link = 0;
+ if (!phydev->no_auto_carrier_off)
+ netif_carrier_off(phydev->attached_dev);
phydev->adjust_link(phydev->attached_dev);
- do_suspend = 1;
+ do_suspend = true;
}
--- a/include/linux/phy.h
+++ b/include/linux/phy.h