mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-01 06:33:07 +00:00
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:
parent
fcbd30d09b
commit
745a237c18
1 changed files with 5 additions and 11 deletions
|
@ -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.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue