ethtool: (uapi) Add ETHTOOL_PHY_GTUNABLE and ETHTOOL_PHY_STUNABLE
authorRaju Lakkaraju <Raju.Lakkaraju@microsemi.com>
Thu, 17 Nov 2016 12:07:20 +0000 (13:07 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 18 Nov 2016 17:12:13 +0000 (12:12 -0500)
Defines a generic API to get/set phy tunables. The API is using the
existing ethtool_tunable/tunable_type_id types which is already being used
for mac level tunables.

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

index 8e547231c1b74bd21ba194127de3b6357cba84b9..42f696f139ecb8befb8c3fa215c4a8c50e4d2856 100644 (file)
@@ -248,6 +248,16 @@ struct ethtool_tunable {
        void    *data[0];
 };
 
+enum phy_tunable_id {
+       ETHTOOL_PHY_ID_UNSPEC,
+
+       /*
+        * Add your fresh new phy tunable attribute above and remember to update
+        * phy_tunable_strings[] in net/core/ethtool.c
+        */
+       __ETHTOOL_PHY_TUNABLE_COUNT,
+};
+
 /**
  * struct ethtool_regs - hardware register dump
  * @cmd: Command number = %ETHTOOL_GREGS
@@ -548,6 +558,7 @@ struct ethtool_pauseparam {
  * @ETH_SS_FEATURES: Device feature names
  * @ETH_SS_RSS_HASH_FUNCS: RSS hush function names
  * @ETH_SS_PHY_STATS: Statistic names, for use with %ETHTOOL_GPHYSTATS
+ * @ETH_SS_PHY_TUNABLES: PHY tunable names
  */
 enum ethtool_stringset {
        ETH_SS_TEST             = 0,
@@ -558,6 +569,7 @@ enum ethtool_stringset {
        ETH_SS_RSS_HASH_FUNCS,
        ETH_SS_TUNABLES,
        ETH_SS_PHY_STATS,
+       ETH_SS_PHY_TUNABLES,
 };
 
 /**
@@ -1313,7 +1325,8 @@ struct ethtool_per_queue_op {
 
 #define ETHTOOL_GLINKSETTINGS  0x0000004c /* Get ethtool_link_settings */
 #define ETHTOOL_SLINKSETTINGS  0x0000004d /* Set ethtool_link_settings */
-
+#define ETHTOOL_PHY_GTUNABLE   0x0000004e /* Get PHY tunable configuration */
+#define ETHTOOL_PHY_STUNABLE   0x0000004f /* Set PHY tunable configuration */
 
 /* compatibility with older code */
 #define SPARC_ETH_GSET         ETHTOOL_GSET