diff options
author | Heiner Kallweit <hkallweit1@gmail.com> | 2019-02-22 08:23:04 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-02-24 12:34:47 -0800 |
commit | b6a4119d9d01633d78409fed457fbe840c757f79 (patch) | |
tree | 111e47f2b5f70b3dd47cdbe7e4961dd05722480f /drivers/net/phy | |
parent | 70f3522614e60b6125eff5f9dd7c887543812187 (diff) | |
download | linux-b6a4119d9d01633d78409fed457fbe840c757f79.tar.bz2 |
net: phy: let genphy_c45_read_abilities also check aneg capability
When using genphy_c45_read_abilities() as get_features callback we
also have to set the autoneg capability in phydev->supported.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/phy')
-rw-r--r-- | drivers/net/phy/phy-c45.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/net/phy/phy-c45.c b/drivers/net/phy/phy-c45.c index c86bef005ef2..d79c27431aa5 100644 --- a/drivers/net/phy/phy-c45.c +++ b/drivers/net/phy/phy-c45.c @@ -380,6 +380,17 @@ int genphy_c45_pma_read_abilities(struct phy_device *phydev) { int val; + linkmode_clear_bit(ETHTOOL_LINK_MODE_Autoneg_BIT, phydev->supported); + if (phydev->c45_ids.devices_in_package & MDIO_DEVS_AN) { + val = phy_read_mmd(phydev, MDIO_MMD_AN, MDIO_STAT1); + if (val < 0) + return val; + + if (val & MDIO_AN_STAT1_ABLE) + linkmode_set_bit(ETHTOOL_LINK_MODE_Autoneg_BIT, + phydev->supported); + } + val = phy_read_mmd(phydev, MDIO_MMD_PMAPMD, MDIO_STAT2); if (val < 0) return val; |