Hi all, This patch series adds support for retrieving PHY statistics with DSA switches when the CPU port uses a PHY to PHY connection (as opposed to MAC to MAC). To get there a number of things are done:
- first we move the code dealing with PHY statistics outside of net/core/ethtool.c and create helper functions since the same code will be reused - then we allow network device drivers to provide an ethtool_get_phy_stats callback when the standard PHY library helpers are not suitable - we update the DSA functions dealing with ethtool operations to get passed a stringset instead of assuming ETH_SS_STATS like they currently do - then we provide a set of standard helpers within DSA as a framework and add the plumbing to allow retrieving the PHY statistics of the CPU port(s) - finally plug support for retrieving such PHY statistics with the b53 driver Changes in v2: - got actual testing when the DSA master network device has a PHY that already provides statistics (thanks Nikita!) - fixed the kbuild error reported when CONFIG_PHYLIB=n - removed the checking of ops which is redundant and not needed Florian Fainelli (7): net: Move PHY statistics code into PHY library helpers net: Allow network devices to have PHY statistics net: dsa: Do not check for ethtool_ops validity net: dsa: Pass stringset to ethtool operations net: dsa: Add helper function to obtain PHY device of a given port net: dsa: Allow providing PHY statistics from CPU port net: dsa: b53: Add support for reading PHY statistics drivers/net/dsa/b53/b53_common.c | 79 ++++++++++++++++++++++++++--- drivers/net/dsa/b53/b53_priv.h | 6 ++- drivers/net/dsa/bcm_sf2.c | 1 + drivers/net/dsa/dsa_loop.c | 11 ++++- drivers/net/dsa/lan9303-core.c | 11 ++++- drivers/net/dsa/microchip/ksz_common.c | 11 ++++- drivers/net/dsa/mt7530.c | 11 ++++- drivers/net/dsa/mv88e6xxx/chip.c | 10 +++- drivers/net/dsa/qca8k.c | 10 +++- drivers/net/phy/phy.c | 48 ++++++++++++++++++ include/linux/ethtool.h | 5 ++ include/linux/phy.h | 20 ++++++++ include/net/dsa.h | 12 ++++- net/core/ethtool.c | 61 ++++++++--------------- net/dsa/master.c | 62 +++++++++++++++++++---- net/dsa/port.c | 90 +++++++++++++++++++++++++++++----- net/dsa/slave.c | 5 +- 17 files changed, 366 insertions(+), 87 deletions(-) -- 2.14.1