Message ID | 20200323025633.6069-10-zhengdejin5@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | introduce read_poll_timeout | expand |
On 3/22/2020 7:56 PM, Dejin Zheng wrote: > use phy_read_poll_timeout() to replace the poll codes for > simplify lan87xx_read_status() function. > > it should be add msleep(10) before call phy_read_poll_timeout() > to keep the code more similar, but it will report that warning, so > modify it to msleep(20). > > ./scripts/checkpatch.pl > v5-0009-net-phy-smsc-use-phy_read_poll_timeout-to-simplif.patch > WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.rst > #42: FILE: drivers/net/phy/smsc.c:126: > + msleep(10); > > Suggested-by: Andrew Lunn <andrew@lunn.ch> > Signed-off-by: Dejin Zheng <zhengdejin5@gmail.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
diff --git a/drivers/net/phy/smsc.c b/drivers/net/phy/smsc.c index b73298250793..f888523086ed 100644 --- a/drivers/net/phy/smsc.c +++ b/drivers/net/phy/smsc.c @@ -112,8 +112,6 @@ static int lan87xx_read_status(struct phy_device *phydev) int err = genphy_read_status(phydev); if (!phydev->link && priv->energy_enable) { - int i; - /* Disable EDPD to wake up PHY */ int rc = phy_read(phydev, MII_LAN83C185_CTRL_STATUS); if (rc < 0) @@ -125,15 +123,12 @@ static int lan87xx_read_status(struct phy_device *phydev) return rc; /* Wait max 640 ms to detect energy */ - for (i = 0; i < 64; i++) { - /* Sleep to allow link test pulses to be sent */ - msleep(10); - rc = phy_read(phydev, MII_LAN83C185_CTRL_STATUS); - if (rc < 0) - return rc; - if (rc & MII_LAN83C185_ENERGYON) - break; - } + msleep(20); + phy_read_poll_timeout(phydev, MII_LAN83C185_CTRL_STATUS, rc, + rc & MII_LAN83C185_ENERGYON, 10000, + 620000); + if (rc < 0) + return rc; /* Re-enable EDPD */ rc = phy_read(phydev, MII_LAN83C185_CTRL_STATUS);
use phy_read_poll_timeout() to replace the poll codes for simplify lan87xx_read_status() function. it should be add msleep(10) before call phy_read_poll_timeout() to keep the code more similar, but it will report that warning, so modify it to msleep(20). ./scripts/checkpatch.pl v5-0009-net-phy-smsc-use-phy_read_poll_timeout-to-simplif.patch WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.rst #42: FILE: drivers/net/phy/smsc.c:126: + msleep(10); Suggested-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Dejin Zheng <zhengdejin5@gmail.com> --- v5 -> v6: - no changed. v4 -> v5: - add msleep before phy_read_poll_timeout() to keep the code more similar v3 -> v4: - add this patch by Andrew's suggestion. Thanks Andrew! drivers/net/phy/smsc.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-)