Add the necessary UAPI changes to support querying the PHY tests modes implemented and optionally associated test specific data. This will be used as the foundation for supporting:
- IEEE standard electrical test modes - cable diagnostics - packet tester Signed-off-by: Florian Fainelli <f.faine...@gmail.com> --- include/uapi/linux/ethtool.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h index 4ca65b56084f..a8befecfe853 100644 --- a/include/uapi/linux/ethtool.h +++ b/include/uapi/linux/ethtool.h @@ -567,6 +567,7 @@ struct ethtool_pauseparam { * @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 + * @ETH_SS_PHY_TESTS: PHY tests, for use with %ETHTOOL_GPHYTEST */ enum ethtool_stringset { ETH_SS_TEST = 0, @@ -578,6 +579,7 @@ enum ethtool_stringset { ETH_SS_TUNABLES, ETH_SS_PHY_STATS, ETH_SS_PHY_TUNABLES, + ETH_SS_PHY_TESTS, }; /** @@ -1296,6 +1298,25 @@ enum ethtool_fec_config_bits { ETHTOOL_FEC_BASER_BIT, }; +/** + * struct ethtool_phy_test - Ethernet PHY test mode + * @cmd: Command number = %ETHTOOL_GPHYTEST or %ETHTOOL_SPHYTEST + * @flags: A bitmask of flags from &enum ethtool_test_flags. Some + * flags may be set by the user on entry; others may be set by + * the driver on return. + * @mode: PHY test mode to enter. The index should be a valid test mode + * obtained through ethtool_get_strings with %ETH_SS_PHY_TESTS + * @len: The length of the test specific array @data + * @data: Array of test specific results to be interpreted with @mode + */ +struct ethtool_phy_test { + __u32 cmd; + __u32 flags; + __u32 mode; + __u32 len; + __u8 data[0]; +}; + #define ETHTOOL_FEC_NONE (1 << ETHTOOL_FEC_NONE_BIT) #define ETHTOOL_FEC_AUTO (1 << ETHTOOL_FEC_AUTO_BIT) #define ETHTOOL_FEC_OFF (1 << ETHTOOL_FEC_OFF_BIT) @@ -1396,6 +1417,8 @@ enum ethtool_fec_config_bits { #define ETHTOOL_PHY_STUNABLE 0x0000004f /* Set PHY tunable configuration */ #define ETHTOOL_GFECPARAM 0x00000050 /* Get FEC settings */ #define ETHTOOL_SFECPARAM 0x00000051 /* Set FEC settings */ +#define ETHTOOL_GPHYTEST 0x00000052 /* Get PHY test mode(s) */ +#define ETHTOOL_SPHYTEST 0x00000053 /* Set PHY test mode */ /* compatibility with older code */ #define SPARC_ETH_GSET ETHTOOL_GSET -- 2.14.1