net: phy: use phy_check_link_status in more places in the state machine
Use phy_check_link_status in more places in the state machine. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
85a1f31d63
commit
c8e977bab3
+5
-48
@@ -945,17 +945,13 @@ void phy_state_machine(struct work_struct *work)
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case PHY_NOLINK:
|
case PHY_NOLINK:
|
||||||
|
case PHY_RUNNING:
|
||||||
if (!phy_polling_mode(phydev))
|
if (!phy_polling_mode(phydev))
|
||||||
break;
|
break;
|
||||||
|
/* fall through */
|
||||||
err = phy_read_status(phydev);
|
case PHY_CHANGELINK:
|
||||||
if (err)
|
case PHY_RESUMING:
|
||||||
break;
|
err = phy_check_link_status(phydev);
|
||||||
|
|
||||||
if (phydev->link) {
|
|
||||||
phydev->state = PHY_RUNNING;
|
|
||||||
phy_link_up(phydev);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case PHY_FORCING:
|
case PHY_FORCING:
|
||||||
err = genphy_update_link(phydev);
|
err = genphy_update_link(phydev);
|
||||||
@@ -971,32 +967,6 @@ void phy_state_machine(struct work_struct *work)
|
|||||||
phy_link_down(phydev, false);
|
phy_link_down(phydev, false);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PHY_RUNNING:
|
|
||||||
if (!phy_polling_mode(phydev))
|
|
||||||
break;
|
|
||||||
|
|
||||||
err = phy_read_status(phydev);
|
|
||||||
if (err)
|
|
||||||
break;
|
|
||||||
|
|
||||||
if (!phydev->link) {
|
|
||||||
phydev->state = PHY_NOLINK;
|
|
||||||
phy_link_down(phydev, true);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PHY_CHANGELINK:
|
|
||||||
err = phy_read_status(phydev);
|
|
||||||
if (err)
|
|
||||||
break;
|
|
||||||
|
|
||||||
if (phydev->link) {
|
|
||||||
phydev->state = PHY_RUNNING;
|
|
||||||
phy_link_up(phydev);
|
|
||||||
} else {
|
|
||||||
phydev->state = PHY_NOLINK;
|
|
||||||
phy_link_down(phydev, true);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PHY_HALTED:
|
case PHY_HALTED:
|
||||||
if (phydev->link) {
|
if (phydev->link) {
|
||||||
phydev->link = 0;
|
phydev->link = 0;
|
||||||
@@ -1004,19 +974,6 @@ void phy_state_machine(struct work_struct *work)
|
|||||||
do_suspend = true;
|
do_suspend = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PHY_RESUMING:
|
|
||||||
err = phy_read_status(phydev);
|
|
||||||
if (err)
|
|
||||||
break;
|
|
||||||
|
|
||||||
if (phydev->link) {
|
|
||||||
phydev->state = PHY_RUNNING;
|
|
||||||
phy_link_up(phydev);
|
|
||||||
} else {
|
|
||||||
phydev->state = PHY_NOLINK;
|
|
||||||
phy_link_down(phydev, true);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mutex_unlock(&phydev->lock);
|
mutex_unlock(&phydev->lock);
|
||||||
|
|||||||
Reference in New Issue
Block a user