ethtool: (uapi) Add ETHTOOL_PHY_DOWNSHIFT to PHY tunables
authorRaju Lakkaraju <Raju.Lakkaraju@microsemi.com>
Thu, 17 Nov 2016 12:07:22 +0000 (13:07 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 18 Nov 2016 17:12:14 +0000 (12:12 -0500)
For operation in cabling environments that are incompatible with
1000BASE-T, PHY device may provide an automatic link speed downshift
operation. When enabled, the device automatically changes its 1000BASE-T
auto-negotiation to the next slower speed after a configured number of
failed attempts at 1000BASE-T.  This feature is useful in setting up in
networks using older cable installations that include only pairs A and B,
and not pairs C and D.

Signed-off-by: Raju Lakkaraju <Raju.Lakkaraju@microsemi.com>
Signed-off-by: Allan W. Nielsen <allan.nielsen@microsemi.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/ethtool.h

index 42f696f139ecb8befb8c3fa215c4a8c50e4d2856..f0db7788f887b9947e0e1aa78d48a9980e80bddf 100644 (file)
@@ -248,9 +248,12 @@ struct ethtool_tunable {
        void    *data[0];
 };
 
+#define DOWNSHIFT_DEV_DEFAULT_COUNT    0xff
+#define DOWNSHIFT_DEV_DISABLE          0
+
 enum phy_tunable_id {
        ETHTOOL_PHY_ID_UNSPEC,
-
+       ETHTOOL_PHY_DOWNSHIFT,
        /*
         * Add your fresh new phy tunable attribute above and remember to update
         * phy_tunable_strings[] in net/core/ethtool.c