diff options
author | Vladimir Oltean <vladimir.oltean@nxp.com> | 2022-09-08 19:48:16 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2022-09-09 12:59:12 +0300 |
commit | 4d1d157fb6a49f6720a3fb3135299e475d5bc844 (patch) | |
tree | c5d1bf616ac8308cc9c165567a837300d77b1742 /drivers/net/ethernet/mscc | |
parent | b69cf1c675723b1417e018971faf2bcb1620ee7a (diff) | |
download | linux-4d1d157fb6a49f6720a3fb3135299e475d5bc844.tar.xz |
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.c | 94 |
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) |