net: phy: aquantia: use phy_read_mmd_poll_timeout() to simplify the code
authorDejin Zheng <zhengdejin5@gmail.com>
Mon, 23 Mar 2020 15:05:55 +0000 (23:05 +0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Mar 2020 05:00:02 +0000 (22:00 -0700)
use phy_read_mmd_poll_timeout() to replace the poll codes for
simplify aqr107_wait_reset_complete() function.

Reviewed-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>
drivers/net/phy/aquantia_main.c

index 837d5ea..41e7c14 100644 (file)
@@ -434,16 +434,11 @@ static int aqr107_set_tunable(struct phy_device *phydev,
  */
 static int aqr107_wait_reset_complete(struct phy_device *phydev)
 {
-       int val, retries = 100;
-
-       do {
-               val = phy_read_mmd(phydev, MDIO_MMD_VEND1, VEND1_GLOBAL_FW_ID);
-               if (val < 0)
-                       return val;
-               msleep(20);
-       } while (!val && --retries);
+       int val;
 
-       return val ? 0 : -ETIMEDOUT;
+       return phy_read_mmd_poll_timeout(phydev, MDIO_MMD_VEND1,
+                                        VEND1_GLOBAL_FW_ID, val, val != 0,
+                                        20000, 2000000, false);
 }
 
 static void aqr107_chip_info(struct phy_device *phydev)