diff options
Diffstat (limited to 'drivers/net/phy/phy-c45.c')
-rw-r--r-- | drivers/net/phy/phy-c45.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/net/phy/phy-c45.c b/drivers/net/phy/phy-c45.c index 1d841efc4d79..252e49864215 100644 --- a/drivers/net/phy/phy-c45.c +++ b/drivers/net/phy/phy-c45.c @@ -143,12 +143,9 @@ int genphy_c45_read_link(struct phy_device *phydev, u32 mmd_mask) devad = __ffs(mmd_mask); mmd_mask &= ~BIT(devad); - val = phy_read_mmd(phydev, devad, MDIO_STAT1); - if (val < 0) - return val; - - /* Read twice because link state is latched and a - * read moves the current state into the register + /* The link state is latched low so that momentary link + * drops can be detected. Do not double-read the status + * register if the link is down. */ val = phy_read_mmd(phydev, devad, MDIO_STAT1); if (val < 0) |