]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
net: phy: lxt: Export link partner advertising
authorThomas Bogendoerfer <tbogendoerfer@suse.de>
Mon, 19 Jun 2017 14:00:22 +0000 (16:00 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 20 Jun 2017 17:41:24 +0000 (13:41 -0400)
Provide link partner advertising information.
Removed testing for gigabit modes, which is useless for a fast ethernet phy.

Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/lxt.c

index 8d198a1f003140210bc61e3b80a757f94b6d8608..09d215177fff295aeb8103569be5e5003b604c5c 100644 (file)
@@ -152,7 +152,6 @@ static int lxt973a2_read_status(struct phy_device *phydev)
        int adv;
        int err;
        int lpa;
-       int lpagb = 0;
 
        /* Update the link, but return if there was an error */
        err = lxt973a2_update_link(phydev);
@@ -178,18 +177,15 @@ static int lxt973a2_read_status(struct phy_device *phydev)
                        */
                } while (lpa == adv && retry--);
 
+               phydev->lp_advertising = mii_lpa_to_ethtool_lpa_t(lpa);
+
                lpa &= adv;
 
                phydev->speed = SPEED_10;
                phydev->duplex = DUPLEX_HALF;
                phydev->pause = phydev->asym_pause = 0;
 
-               if (lpagb & (LPA_1000FULL | LPA_1000HALF)) {
-                       phydev->speed = SPEED_1000;
-
-                       if (lpagb & LPA_1000FULL)
-                               phydev->duplex = DUPLEX_FULL;
-               } else if (lpa & (LPA_100FULL | LPA_100HALF)) {
+               if (lpa & (LPA_100FULL | LPA_100HALF)) {
                        phydev->speed = SPEED_100;
 
                        if (lpa & LPA_100FULL)
@@ -222,6 +218,7 @@ static int lxt973a2_read_status(struct phy_device *phydev)
                        phydev->speed = SPEED_10;
 
                phydev->pause = phydev->asym_pause = 0;
+               phydev->lp_advertising = 0;
        }
 
        return 0;