Commit 916e571e authored by Heiner Kallweit's avatar Heiner Kallweit Committed by David S. Miller

net: phy: read MII_CTRL1000 in genphy_read_status only if needed

Value of MII_CTRL1000 is needed only if LPA_1000MSFAIL is set.
Therefore move reading this register.
Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a46b5b6c
...@@ -1784,7 +1784,7 @@ EXPORT_SYMBOL(genphy_update_link); ...@@ -1784,7 +1784,7 @@ EXPORT_SYMBOL(genphy_update_link);
*/ */
int genphy_read_status(struct phy_device *phydev) int genphy_read_status(struct phy_device *phydev)
{ {
int adv, lpa, lpagb, err, old_link = phydev->link; int lpa, lpagb, err, old_link = phydev->link;
/* Update the link, but return if there was an error */ /* Update the link, but return if there was an error */
err = genphy_update_link(phydev); err = genphy_update_link(phydev);
...@@ -1806,11 +1806,12 @@ int genphy_read_status(struct phy_device *phydev) ...@@ -1806,11 +1806,12 @@ int genphy_read_status(struct phy_device *phydev)
if (lpagb < 0) if (lpagb < 0)
return lpagb; return lpagb;
adv = phy_read(phydev, MII_CTRL1000);
if (adv < 0)
return adv;
if (lpagb & LPA_1000MSFAIL) { if (lpagb & LPA_1000MSFAIL) {
int adv = phy_read(phydev, MII_CTRL1000);
if (adv < 0)
return adv;
if (adv & CTL1000_ENABLE_MASTER) if (adv & CTL1000_ENABLE_MASTER)
phydev_err(phydev, "Master/Slave resolution failed, maybe conflicting manual settings?\n"); phydev_err(phydev, "Master/Slave resolution failed, maybe conflicting manual settings?\n");
else else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment