net: phy: use phy_read_poll_timeout() to simplify the code

use phy_read_poll_timeout() to replace the poll codes for
simplify the code in phy_poll_reset() function.

Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Dejin Zheng <zhengdejin5@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Dejin Zheng 2020-03-23 23:05:58 +08:00 committed by David S. Miller
parent fcbd30d09b
commit 745a237c18

View file

@ -1059,18 +1059,12 @@ EXPORT_SYMBOL(phy_disconnect);
static int phy_poll_reset(struct phy_device *phydev) static int phy_poll_reset(struct phy_device *phydev)
{ {
/* Poll until the reset bit clears (50ms per retry == 0.6 sec) */ /* Poll until the reset bit clears (50ms per retry == 0.6 sec) */
unsigned int retries = 12; int ret, val;
int ret;
do { ret = phy_read_poll_timeout(phydev, MII_BMCR, val, !(val & BMCR_RESET),
msleep(50); 50000, 600000, true);
ret = phy_read(phydev, MII_BMCR); if (ret)
if (ret < 0)
return ret; return ret;
} while (ret & BMCR_RESET && --retries);
if (ret & BMCR_RESET)
return -ETIMEDOUT;
/* Some chips (smsc911x) may still need up to another 1ms after the /* Some chips (smsc911x) may still need up to another 1ms after the
* BMCR_RESET bit is cleared before they are usable. * BMCR_RESET bit is cleared before they are usable.
*/ */