net: phy: don't set autoneg if it's not supported
authorHeiner Kallweit <hkallweit1@gmail.com>
Tue, 16 Apr 2019 21:54:00 +0000 (23:54 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 18 Apr 2019 23:10:27 +0000 (16:10 -0700)
In phy_device_create() we set phydev->autoneg = 1. This isn't changed
even if the PHY doesn't support autoneg. This seems to affect very
few PHY's, and they disable phydev->autoneg in their config_init
callback. So it's more of an improvement, therefore net-next.
The patch also wouldn't apply to older kernel versions because the
link mode bitmaps have been introduced recently.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/phy_device.c

index 48adb3d1f1ee3f24e4e939f6ee62604d2dd92c38..b9192ae92e405219cc6f67f00aac4bfdc4f8041f 100644 (file)
@@ -2149,6 +2149,10 @@ static int phy_probe(struct device *dev)
        if (err)
                goto out;
 
+       if (!linkmode_test_bit(ETHTOOL_LINK_MODE_Autoneg_BIT,
+                              phydev->supported))
+               phydev->autoneg = 0;
+
        if (linkmode_test_bit(ETHTOOL_LINK_MODE_1000baseT_Half_BIT,
                              phydev->supported))
                phydev->is_gigabit_capable = 1;