mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-12 01:20:14 +00:00
dsa: mv88e6xxx: Move available stats into info structure
Different families of switches have different statistics available. This information is current hard coded into functions, however this information will also soon be needed when getting statistics from the RMU. Move it into the info structure. Signed-off-by: Andrew Lunn <andrew@lunn.ch> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/20241207-v6-13-rc1-net-next-mv88e6xxx-stats-refactor-v1-1-b9960f839846@lunn.ch Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
a0e1fc921c
commit
5595e3613e
@ -1289,7 +1289,7 @@ static size_t mv88e6095_stats_get_stat(struct mv88e6xxx_chip *chip, int port,
|
||||
const struct mv88e6xxx_hw_stat *stat,
|
||||
uint64_t *data)
|
||||
{
|
||||
if (!(stat->type & (STATS_TYPE_BANK0 | STATS_TYPE_PORT)))
|
||||
if (!(stat->type & chip->info->stats_type))
|
||||
return 0;
|
||||
|
||||
*data = _mv88e6xxx_get_ethtool_stat(chip, stat, port, 0,
|
||||
@ -1301,7 +1301,7 @@ static size_t mv88e6250_stats_get_stat(struct mv88e6xxx_chip *chip, int port,
|
||||
const struct mv88e6xxx_hw_stat *stat,
|
||||
uint64_t *data)
|
||||
{
|
||||
if (!(stat->type & STATS_TYPE_BANK0))
|
||||
if (!(stat->type & chip->info->stats_type))
|
||||
return 0;
|
||||
|
||||
*data = _mv88e6xxx_get_ethtool_stat(chip, stat, port, 0,
|
||||
@ -1313,7 +1313,7 @@ static size_t mv88e6320_stats_get_stat(struct mv88e6xxx_chip *chip, int port,
|
||||
const struct mv88e6xxx_hw_stat *stat,
|
||||
uint64_t *data)
|
||||
{
|
||||
if (!(stat->type & (STATS_TYPE_BANK0 | STATS_TYPE_BANK1)))
|
||||
if (!(stat->type & chip->info->stats_type))
|
||||
return 0;
|
||||
|
||||
*data = _mv88e6xxx_get_ethtool_stat(chip, stat, port,
|
||||
@ -1326,7 +1326,7 @@ static size_t mv88e6390_stats_get_stat(struct mv88e6xxx_chip *chip, int port,
|
||||
const struct mv88e6xxx_hw_stat *stat,
|
||||
uint64_t *data)
|
||||
{
|
||||
if (!(stat->type & (STATS_TYPE_BANK0 | STATS_TYPE_BANK1)))
|
||||
if (!(stat->type & chip->info->stats_type))
|
||||
return 0;
|
||||
|
||||
*data = _mv88e6xxx_get_ethtool_stat(chip, stat, port,
|
||||
@ -5645,6 +5645,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 5,
|
||||
.stats_type = STATS_TYPE_BANK0,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.dual_chip = true,
|
||||
.ops = &mv88e6250_ops,
|
||||
@ -5665,6 +5666,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 5,
|
||||
.stats_type = STATS_TYPE_BANK0,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.dual_chip = true,
|
||||
.ops = &mv88e6250_ops,
|
||||
@ -5687,6 +5689,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 8,
|
||||
.g2_irqs = 10,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_PORT,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -5708,6 +5711,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.global2_addr = 0x1c,
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 8,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_PORT,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.multi_chip = true,
|
||||
.ops = &mv88e6095_ops,
|
||||
@ -5730,6 +5734,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 8,
|
||||
.g2_irqs = 10,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_PORT,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -5754,6 +5759,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 10,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_PORT,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -5776,6 +5782,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.global2_addr = 0x1c,
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 9,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_PORT,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.multi_chip = true,
|
||||
.ops = &mv88e6131_ops,
|
||||
@ -5800,6 +5807,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.atu_move_port_mask = 0x1f,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 10,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_BANK1,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
.edsa_support = MV88E6XXX_EDSA_SUPPORTED,
|
||||
@ -5823,6 +5831,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 10,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_PORT,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -5848,6 +5857,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 10,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_PORT,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -5872,6 +5882,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 10,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_BANK1,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -5897,6 +5908,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 10,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_PORT,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -5921,6 +5933,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 10,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_PORT,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -5946,6 +5959,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 10,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_PORT,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -5968,6 +5982,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.global2_addr = 0x1c,
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 8,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_PORT,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.multi_chip = true,
|
||||
.edsa_support = MV88E6XXX_EDSA_SUPPORTED,
|
||||
@ -5992,6 +6007,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 3750,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 14,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_BANK1,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
.atu_move_port_mask = 0x1f,
|
||||
@ -6016,6 +6032,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 3750,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 14,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_BANK1,
|
||||
.atu_move_port_mask = 0x1f,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -6039,6 +6056,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 3750,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 14,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_BANK1,
|
||||
.atu_move_port_mask = 0x1f,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -6063,6 +6081,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 3750,
|
||||
.g1_irqs = 10,
|
||||
.g2_irqs = 14,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_BANK1,
|
||||
.atu_move_port_mask = 0x1f,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -6087,6 +6106,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 3750,
|
||||
.g1_irqs = 10,
|
||||
.g2_irqs = 14,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_BANK1,
|
||||
.atu_move_port_mask = 0x1f,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -6114,6 +6134,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 10,
|
||||
.stats_type = STATS_TYPE_BANK0,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.dual_chip = true,
|
||||
.ptp_support = true,
|
||||
@ -6138,6 +6159,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 10,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_PORT,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -6161,6 +6183,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 10,
|
||||
.stats_type = STATS_TYPE_BANK0,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.dual_chip = true,
|
||||
.ptp_support = true,
|
||||
@ -6184,6 +6207,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 3750,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 14,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_BANK1,
|
||||
.atu_move_port_mask = 0x1f,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -6208,6 +6232,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 8,
|
||||
.g2_irqs = 10,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_BANK1,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -6233,6 +6258,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 8,
|
||||
.g2_irqs = 10,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_BANK1,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.multi_chip = true,
|
||||
.edsa_support = MV88E6XXX_EDSA_SUPPORTED,
|
||||
@ -6259,6 +6285,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.atu_move_port_mask = 0x1f,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 10,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_BANK1,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
.edsa_support = MV88E6XXX_EDSA_SUPPORTED,
|
||||
@ -6283,6 +6310,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 10,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_PORT,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -6307,6 +6335,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 10,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_PORT,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -6332,6 +6361,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 10,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_PORT,
|
||||
.atu_move_port_mask = 0xf,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -6359,6 +6389,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 3750,
|
||||
.g1_irqs = 10,
|
||||
.g2_irqs = 14,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_BANK1,
|
||||
.atu_move_port_mask = 0x1f,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -6383,6 +6414,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 3750,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 14,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_BANK1,
|
||||
.atu_move_port_mask = 0x1f,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -6408,6 +6440,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 3750,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 14,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_BANK1,
|
||||
.atu_move_port_mask = 0x1f,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
@ -6433,6 +6466,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
||||
.age_time_coeff = 3750,
|
||||
.g1_irqs = 10,
|
||||
.g2_irqs = 14,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_BANK1,
|
||||
.atu_move_port_mask = 0x1f,
|
||||
.pvt = true,
|
||||
.multi_chip = true,
|
||||
|
||||
@ -144,6 +144,7 @@ struct mv88e6xxx_info {
|
||||
unsigned int age_time_coeff;
|
||||
unsigned int g1_irqs;
|
||||
unsigned int g2_irqs;
|
||||
int stats_type;
|
||||
bool pvt;
|
||||
|
||||
/* Mark certain ports as invalid. This is required for example for the
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user