mirror of https://gitee.com/openkylin/linux.git
net: phy: marvell10g: use phy_read_mmd_poll_timeout() to simplify the code
use phy_read_mmd_poll_timeout() to replace the poll codes for simplify mv3310_reset() function. Suggested-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
9c6464dcff
commit
8964a2174f
|
@ -241,22 +241,17 @@ static int mv3310_power_up(struct phy_device *phydev)
|
||||||
|
|
||||||
static int mv3310_reset(struct phy_device *phydev, u32 unit)
|
static int mv3310_reset(struct phy_device *phydev, u32 unit)
|
||||||
{
|
{
|
||||||
int retries, val, err;
|
int val, err;
|
||||||
|
|
||||||
err = phy_modify_mmd(phydev, MDIO_MMD_PCS, unit + MDIO_CTRL1,
|
err = phy_modify_mmd(phydev, MDIO_MMD_PCS, unit + MDIO_CTRL1,
|
||||||
MDIO_CTRL1_RESET, MDIO_CTRL1_RESET);
|
MDIO_CTRL1_RESET, MDIO_CTRL1_RESET);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
retries = 20;
|
return phy_read_mmd_poll_timeout(phydev, MDIO_MMD_PCS,
|
||||||
do {
|
unit + MDIO_CTRL1, val,
|
||||||
msleep(5);
|
!(val & MDIO_CTRL1_RESET),
|
||||||
val = phy_read_mmd(phydev, MDIO_MMD_PCS, unit + MDIO_CTRL1);
|
5000, 100000, true);
|
||||||
if (val < 0)
|
|
||||||
return val;
|
|
||||||
} while (val & MDIO_CTRL1_RESET && --retries);
|
|
||||||
|
|
||||||
return val & MDIO_CTRL1_RESET ? -ETIMEDOUT : 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mv3310_get_edpd(struct phy_device *phydev, u16 *edpd)
|
static int mv3310_get_edpd(struct phy_device *phydev, u16 *edpd)
|
||||||
|
|
Loading…
Reference in New Issue