summaryrefslogtreecommitdiff
path: root/drivers/net/phy/bcm84881.c
diff options
context:
space:
mode:
authorDejin Zheng <zhengdejin5@gmail.com>2020-03-23 18:05:54 +0300
committerDavid S. Miller <davem@davemloft.net>2020-03-24 08:00:02 +0300
commit331c7372bd7a3ea452687d98e838067b3677f367 (patch)
treed06ee03d4eaaf8c3e6cbcd87a1fa972319341ca9 /drivers/net/phy/bcm84881.c
parentbd971ff0b73927b91f4520621d49d3a801ee4837 (diff)
downloadlinux-331c7372bd7a3ea452687d98e838067b3677f367.tar.xz
net: phy: bcm84881: use phy_read_mmd_poll_timeout() to simplify the code
use phy_read_mmd_poll_timeout() to replace the poll codes for simplify bcm84881_wait_init() 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>
Diffstat (limited to 'drivers/net/phy/bcm84881.c')
-rw-r--r--drivers/net/phy/bcm84881.c27
1 files changed, 4 insertions, 23 deletions
diff --git a/drivers/net/phy/bcm84881.c b/drivers/net/phy/bcm84881.c
index 14d55a77eb28..3840d2adbbb9 100644
--- a/drivers/net/phy/bcm84881.c
+++ b/drivers/net/phy/bcm84881.c
@@ -22,30 +22,11 @@ enum {
static int bcm84881_wait_init(struct phy_device *phydev)
{
- unsigned int tries = 20;
- int ret, val;
-
- do {
- val = phy_read_mmd(phydev, MDIO_MMD_PMAPMD, MDIO_CTRL1);
- if (val < 0) {
- ret = val;
- break;
- }
- if (!(val & MDIO_CTRL1_RESET)) {
- ret = 0;
- break;
- }
- if (!--tries) {
- ret = -ETIMEDOUT;
- break;
- }
- msleep(100);
- } while (1);
+ int val;
- if (ret)
- phydev_err(phydev, "%s failed: %d\n", __func__, ret);
-
- return ret;
+ return phy_read_mmd_poll_timeout(phydev, MDIO_MMD_PMAPMD, MDIO_CTRL1,
+ val, !(val & MDIO_CTRL1_RESET),
+ 100000, 2000000, false);
}
static int bcm84881_config_init(struct phy_device *phydev)