summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/mscc
diff options
context:
space:
mode:
authorVladimir Oltean <vladimir.oltean@nxp.com>2022-09-08 19:48:16 +0300
committerDavid S. Miller <davem@davemloft.net>2022-09-09 10:59:12 +0100
commit4d1d157fb6a49f6720a3fb3135299e475d5bc844 (patch)
treec5d1bf616ac8308cc9c165567a837300d77b1742 /drivers/net/ethernet/mscc
parentb69cf1c675723b1417e018971faf2bcb1620ee7a (diff)
downloadlinux-stable-4d1d157fb6a49f6720a3fb3135299e475d5bc844.tar.gz
linux-stable-4d1d157fb6a49f6720a3fb3135299e475d5bc844.tar.bz2
linux-stable-4d1d157fb6a49f6720a3fb3135299e475d5bc844.zip
net: mscc: ocelot: share the common stat definitions between all drivers
All switch families supported by the ocelot lib (ocelot, felix, seville) export the same registers so far. But for example felix also has TSN counters, while the others don't. To reduce the bloat even further, create an OCELOT_COMMON_STATS() macro which just lists all stats that are common between switches. The array elements are still replicated among all of vsc9959_stats_layout, vsc9953_stats_layout and ocelot_stats_layout. Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mscc')
-rw-r--r--drivers/net/ethernet/mscc/ocelot_vsc7514.c94
1 files changed, 1 insertions, 93 deletions
diff --git a/drivers/net/ethernet/mscc/ocelot_vsc7514.c b/drivers/net/ethernet/mscc/ocelot_vsc7514.c
index 8fe84d753cc9..ae42bbba5747 100644
--- a/drivers/net/ethernet/mscc/ocelot_vsc7514.c
+++ b/drivers/net/ethernet/mscc/ocelot_vsc7514.c
@@ -97,99 +97,7 @@ static const struct reg_field ocelot_regfields[REGFIELD_MAX] = {
};
static const struct ocelot_stat_layout ocelot_stats_layout[OCELOT_NUM_STATS] = {
- OCELOT_STAT_ETHTOOL(RX_OCTETS, "rx_octets"),
- OCELOT_STAT_ETHTOOL(RX_UNICAST, "rx_unicast"),
- OCELOT_STAT_ETHTOOL(RX_MULTICAST, "rx_multicast"),
- OCELOT_STAT_ETHTOOL(RX_BROADCAST, "rx_broadcast"),
- OCELOT_STAT_ETHTOOL(RX_SHORTS, "rx_shorts"),
- OCELOT_STAT_ETHTOOL(RX_FRAGMENTS, "rx_fragments"),
- OCELOT_STAT_ETHTOOL(RX_JABBERS, "rx_jabbers"),
- OCELOT_STAT_ETHTOOL(RX_CRC_ALIGN_ERRS, "rx_crc_align_errs"),
- OCELOT_STAT_ETHTOOL(RX_SYM_ERRS, "rx_sym_errs"),
- OCELOT_STAT_ETHTOOL(RX_64, "rx_frames_below_65_octets"),
- OCELOT_STAT_ETHTOOL(RX_65_127, "rx_frames_65_to_127_octets"),
- OCELOT_STAT_ETHTOOL(RX_128_255, "rx_frames_128_to_255_octets"),
- OCELOT_STAT_ETHTOOL(RX_256_511, "rx_frames_256_to_511_octets"),
- OCELOT_STAT_ETHTOOL(RX_512_1023, "rx_frames_512_to_1023_octets"),
- OCELOT_STAT_ETHTOOL(RX_1024_1526, "rx_frames_1024_to_1526_octets"),
- OCELOT_STAT_ETHTOOL(RX_1527_MAX, "rx_frames_over_1526_octets"),
- OCELOT_STAT_ETHTOOL(RX_PAUSE, "rx_pause"),
- OCELOT_STAT_ETHTOOL(RX_CONTROL, "rx_control"),
- OCELOT_STAT_ETHTOOL(RX_LONGS, "rx_longs"),
- OCELOT_STAT_ETHTOOL(RX_CLASSIFIED_DROPS, "rx_classified_drops"),
- OCELOT_STAT_ETHTOOL(RX_RED_PRIO_0, "rx_red_prio_0"),
- OCELOT_STAT_ETHTOOL(RX_RED_PRIO_1, "rx_red_prio_1"),
- OCELOT_STAT_ETHTOOL(RX_RED_PRIO_2, "rx_red_prio_2"),
- OCELOT_STAT_ETHTOOL(RX_RED_PRIO_3, "rx_red_prio_3"),
- OCELOT_STAT_ETHTOOL(RX_RED_PRIO_4, "rx_red_prio_4"),
- OCELOT_STAT_ETHTOOL(RX_RED_PRIO_5, "rx_red_prio_5"),
- OCELOT_STAT_ETHTOOL(RX_RED_PRIO_6, "rx_red_prio_6"),
- OCELOT_STAT_ETHTOOL(RX_RED_PRIO_7, "rx_red_prio_7"),
- OCELOT_STAT_ETHTOOL(RX_YELLOW_PRIO_0, "rx_yellow_prio_0"),
- OCELOT_STAT_ETHTOOL(RX_YELLOW_PRIO_1, "rx_yellow_prio_1"),
- OCELOT_STAT_ETHTOOL(RX_YELLOW_PRIO_2, "rx_yellow_prio_2"),
- OCELOT_STAT_ETHTOOL(RX_YELLOW_PRIO_3, "rx_yellow_prio_3"),
- OCELOT_STAT_ETHTOOL(RX_YELLOW_PRIO_4, "rx_yellow_prio_4"),
- OCELOT_STAT_ETHTOOL(RX_YELLOW_PRIO_5, "rx_yellow_prio_5"),
- OCELOT_STAT_ETHTOOL(RX_YELLOW_PRIO_6, "rx_yellow_prio_6"),
- OCELOT_STAT_ETHTOOL(RX_YELLOW_PRIO_7, "rx_yellow_prio_7"),
- OCELOT_STAT_ETHTOOL(RX_GREEN_PRIO_0, "rx_green_prio_0"),
- OCELOT_STAT_ETHTOOL(RX_GREEN_PRIO_1, "rx_green_prio_1"),
- OCELOT_STAT_ETHTOOL(RX_GREEN_PRIO_2, "rx_green_prio_2"),
- OCELOT_STAT_ETHTOOL(RX_GREEN_PRIO_3, "rx_green_prio_3"),
- OCELOT_STAT_ETHTOOL(RX_GREEN_PRIO_4, "rx_green_prio_4"),
- OCELOT_STAT_ETHTOOL(RX_GREEN_PRIO_5, "rx_green_prio_5"),
- OCELOT_STAT_ETHTOOL(RX_GREEN_PRIO_6, "rx_green_prio_6"),
- OCELOT_STAT_ETHTOOL(RX_GREEN_PRIO_7, "rx_green_prio_7"),
- OCELOT_STAT_ETHTOOL(TX_OCTETS, "tx_octets"),
- OCELOT_STAT_ETHTOOL(TX_UNICAST, "tx_unicast"),
- OCELOT_STAT_ETHTOOL(TX_MULTICAST, "tx_multicast"),
- OCELOT_STAT_ETHTOOL(TX_BROADCAST, "tx_broadcast"),
- OCELOT_STAT_ETHTOOL(TX_COLLISION, "tx_collision"),
- OCELOT_STAT_ETHTOOL(TX_DROPS, "tx_drops"),
- OCELOT_STAT_ETHTOOL(TX_PAUSE, "tx_pause"),
- OCELOT_STAT_ETHTOOL(TX_64, "tx_frames_below_65_octets"),
- OCELOT_STAT_ETHTOOL(TX_65_127, "tx_frames_65_to_127_octets"),
- OCELOT_STAT_ETHTOOL(TX_128_255, "tx_frames_128_255_octets"),
- OCELOT_STAT_ETHTOOL(TX_256_511, "tx_frames_256_511_octets"),
- OCELOT_STAT_ETHTOOL(TX_512_1023, "tx_frames_512_1023_octets"),
- OCELOT_STAT_ETHTOOL(TX_1024_1526, "tx_frames_1024_1526_octets"),
- OCELOT_STAT_ETHTOOL(TX_1527_MAX, "tx_frames_over_1526_octets"),
- OCELOT_STAT_ETHTOOL(TX_YELLOW_PRIO_0, "tx_yellow_prio_0"),
- OCELOT_STAT_ETHTOOL(TX_YELLOW_PRIO_1, "tx_yellow_prio_1"),
- OCELOT_STAT_ETHTOOL(TX_YELLOW_PRIO_2, "tx_yellow_prio_2"),
- OCELOT_STAT_ETHTOOL(TX_YELLOW_PRIO_3, "tx_yellow_prio_3"),
- OCELOT_STAT_ETHTOOL(TX_YELLOW_PRIO_4, "tx_yellow_prio_4"),
- OCELOT_STAT_ETHTOOL(TX_YELLOW_PRIO_5, "tx_yellow_prio_5"),
- OCELOT_STAT_ETHTOOL(TX_YELLOW_PRIO_6, "tx_yellow_prio_6"),
- OCELOT_STAT_ETHTOOL(TX_YELLOW_PRIO_7, "tx_yellow_prio_7"),
- OCELOT_STAT_ETHTOOL(TX_GREEN_PRIO_0, "tx_green_prio_0"),
- OCELOT_STAT_ETHTOOL(TX_GREEN_PRIO_1, "tx_green_prio_1"),
- OCELOT_STAT_ETHTOOL(TX_GREEN_PRIO_2, "tx_green_prio_2"),
- OCELOT_STAT_ETHTOOL(TX_GREEN_PRIO_3, "tx_green_prio_3"),
- OCELOT_STAT_ETHTOOL(TX_GREEN_PRIO_4, "tx_green_prio_4"),
- OCELOT_STAT_ETHTOOL(TX_GREEN_PRIO_5, "tx_green_prio_5"),
- OCELOT_STAT_ETHTOOL(TX_GREEN_PRIO_6, "tx_green_prio_6"),
- OCELOT_STAT_ETHTOOL(TX_GREEN_PRIO_7, "tx_green_prio_7"),
- OCELOT_STAT_ETHTOOL(TX_AGED, "tx_aged"),
- OCELOT_STAT_ETHTOOL(DROP_LOCAL, "drop_local"),
- OCELOT_STAT_ETHTOOL(DROP_TAIL, "drop_tail"),
- OCELOT_STAT_ETHTOOL(DROP_YELLOW_PRIO_0, "drop_yellow_prio_0"),
- OCELOT_STAT_ETHTOOL(DROP_YELLOW_PRIO_1, "drop_yellow_prio_1"),
- OCELOT_STAT_ETHTOOL(DROP_YELLOW_PRIO_2, "drop_yellow_prio_2"),
- OCELOT_STAT_ETHTOOL(DROP_YELLOW_PRIO_3, "drop_yellow_prio_3"),
- OCELOT_STAT_ETHTOOL(DROP_YELLOW_PRIO_4, "drop_yellow_prio_4"),
- OCELOT_STAT_ETHTOOL(DROP_YELLOW_PRIO_5, "drop_yellow_prio_5"),
- OCELOT_STAT_ETHTOOL(DROP_YELLOW_PRIO_6, "drop_yellow_prio_6"),
- OCELOT_STAT_ETHTOOL(DROP_YELLOW_PRIO_7, "drop_yellow_prio_7"),
- OCELOT_STAT_ETHTOOL(DROP_GREEN_PRIO_0, "drop_green_prio_0"),
- OCELOT_STAT_ETHTOOL(DROP_GREEN_PRIO_1, "drop_green_prio_1"),
- OCELOT_STAT_ETHTOOL(DROP_GREEN_PRIO_2, "drop_green_prio_2"),
- OCELOT_STAT_ETHTOOL(DROP_GREEN_PRIO_3, "drop_green_prio_3"),
- OCELOT_STAT_ETHTOOL(DROP_GREEN_PRIO_4, "drop_green_prio_4"),
- OCELOT_STAT_ETHTOOL(DROP_GREEN_PRIO_5, "drop_green_prio_5"),
- OCELOT_STAT_ETHTOOL(DROP_GREEN_PRIO_6, "drop_green_prio_6"),
- OCELOT_STAT_ETHTOOL(DROP_GREEN_PRIO_7, "drop_green_prio_7"),
+ OCELOT_COMMON_STATS,
};
static void ocelot_pll5_init(struct ocelot *ocelot)