net: phy: smsc: use phy_read_poll_timeout() to simplify the code
use phy_read_poll_timeout() to replace the poll codes for simplify lan87xx_read_status() function. Suggested-by: Andrew Lunn <andrew@lunn.ch> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Dejin Zheng <zhengdejin5@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
745a237c18
commit
7ae7ad2f11
@ -112,8 +112,6 @@ static int lan87xx_read_status(struct phy_device *phydev)
|
|||||||
int err = genphy_read_status(phydev);
|
int err = genphy_read_status(phydev);
|
||||||
|
|
||||||
if (!phydev->link && priv->energy_enable) {
|
if (!phydev->link && priv->energy_enable) {
|
||||||
int i;
|
|
||||||
|
|
||||||
/* Disable EDPD to wake up PHY */
|
/* Disable EDPD to wake up PHY */
|
||||||
int rc = phy_read(phydev, MII_LAN83C185_CTRL_STATUS);
|
int rc = phy_read(phydev, MII_LAN83C185_CTRL_STATUS);
|
||||||
if (rc < 0)
|
if (rc < 0)
|
||||||
@ -125,15 +123,11 @@ static int lan87xx_read_status(struct phy_device *phydev)
|
|||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
/* Wait max 640 ms to detect energy */
|
/* Wait max 640 ms to detect energy */
|
||||||
for (i = 0; i < 64; i++) {
|
phy_read_poll_timeout(phydev, MII_LAN83C185_CTRL_STATUS, rc,
|
||||||
/* Sleep to allow link test pulses to be sent */
|
rc & MII_LAN83C185_ENERGYON, 10000,
|
||||||
msleep(10);
|
640000, true);
|
||||||
rc = phy_read(phydev, MII_LAN83C185_CTRL_STATUS);
|
|
||||||
if (rc < 0)
|
if (rc < 0)
|
||||||
return rc;
|
return rc;
|
||||||
if (rc & MII_LAN83C185_ENERGYON)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Re-enable EDPD */
|
/* Re-enable EDPD */
|
||||||
rc = phy_read(phydev, MII_LAN83C185_CTRL_STATUS);
|
rc = phy_read(phydev, MII_LAN83C185_CTRL_STATUS);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user