net: phy: report link partner features through ethtool
The PHY library already reads the MII_STAT1000 and MII_LPA registers in genphy_read_status(), so extend it to also populate the PHY device link partner advertised features such that we can feed this back into ethtool when asked for it in phy_ethtool_gset(). Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
73713357ab
commit
114002bc1a
@@ -839,6 +839,8 @@ int genphy_read_status(struct phy_device *phydev)
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
phydev->lp_advertising = 0;
|
||||
|
||||
if (AUTONEG_ENABLE == phydev->autoneg) {
|
||||
if (phydev->supported & (SUPPORTED_1000baseT_Half
|
||||
| SUPPORTED_1000baseT_Full)) {
|
||||
@@ -852,6 +854,8 @@ int genphy_read_status(struct phy_device *phydev)
|
||||
if (adv < 0)
|
||||
return adv;
|
||||
|
||||
phydev->lp_advertising =
|
||||
mii_stat1000_to_ethtool_lpa_t(lpagb);
|
||||
lpagb &= adv << 2;
|
||||
}
|
||||
|
||||
@@ -860,6 +864,8 @@ int genphy_read_status(struct phy_device *phydev)
|
||||
if (lpa < 0)
|
||||
return lpa;
|
||||
|
||||
phydev->lp_advertising |= mii_lpa_to_ethtool_lpa_t(lpa);
|
||||
|
||||
adv = phy_read(phydev, MII_ADVERTISE);
|
||||
|
||||
if (adv < 0)
|
||||
|
||||
Reference in New Issue
Block a user