Commit 88c06054 authored by Andrew Lunn's avatar Andrew Lunn Committed by David S. Miller

dsa: Pass the port to get_sset_count()

By passing the port, we allow different ports to have different
statistics. This is useful since some ports have SERDES interfaces
with their own statistic counters.
Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
Tested-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Reviewed-by: default avatarVivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent efab163b
...@@ -852,7 +852,7 @@ void b53_get_ethtool_stats(struct dsa_switch *ds, int port, uint64_t *data) ...@@ -852,7 +852,7 @@ void b53_get_ethtool_stats(struct dsa_switch *ds, int port, uint64_t *data)
} }
EXPORT_SYMBOL(b53_get_ethtool_stats); EXPORT_SYMBOL(b53_get_ethtool_stats);
int b53_get_sset_count(struct dsa_switch *ds) int b53_get_sset_count(struct dsa_switch *ds, int port)
{ {
struct b53_device *dev = ds->priv; struct b53_device *dev = ds->priv;
......
...@@ -288,7 +288,7 @@ void b53_imp_vlan_setup(struct dsa_switch *ds, int cpu_port); ...@@ -288,7 +288,7 @@ void b53_imp_vlan_setup(struct dsa_switch *ds, int cpu_port);
int b53_configure_vlan(struct dsa_switch *ds); int b53_configure_vlan(struct dsa_switch *ds);
void b53_get_strings(struct dsa_switch *ds, int port, uint8_t *data); void b53_get_strings(struct dsa_switch *ds, int port, uint8_t *data);
void b53_get_ethtool_stats(struct dsa_switch *ds, int port, uint64_t *data); void b53_get_ethtool_stats(struct dsa_switch *ds, int port, uint64_t *data);
int b53_get_sset_count(struct dsa_switch *ds); int b53_get_sset_count(struct dsa_switch *ds, int port);
int b53_br_join(struct dsa_switch *ds, int port, struct net_device *bridge); int b53_br_join(struct dsa_switch *ds, int port, struct net_device *bridge);
void b53_br_leave(struct dsa_switch *ds, int port, struct net_device *bridge); void b53_br_leave(struct dsa_switch *ds, int port, struct net_device *bridge);
void b53_br_set_stp_state(struct dsa_switch *ds, int port, u8 state); void b53_br_set_stp_state(struct dsa_switch *ds, int port, u8 state);
......
...@@ -86,7 +86,7 @@ static int dsa_loop_setup(struct dsa_switch *ds) ...@@ -86,7 +86,7 @@ static int dsa_loop_setup(struct dsa_switch *ds)
return 0; return 0;
} }
static int dsa_loop_get_sset_count(struct dsa_switch *ds) static int dsa_loop_get_sset_count(struct dsa_switch *ds, int port)
{ {
return __DSA_LOOP_CNT_MAX; return __DSA_LOOP_CNT_MAX;
} }
......
...@@ -1007,7 +1007,7 @@ static void lan9303_get_ethtool_stats(struct dsa_switch *ds, int port, ...@@ -1007,7 +1007,7 @@ static void lan9303_get_ethtool_stats(struct dsa_switch *ds, int port,
} }
} }
static int lan9303_get_sset_count(struct dsa_switch *ds) static int lan9303_get_sset_count(struct dsa_switch *ds, int port)
{ {
return ARRAY_SIZE(lan9303_mib); return ARRAY_SIZE(lan9303_mib);
} }
......
...@@ -439,7 +439,7 @@ static void ksz_disable_port(struct dsa_switch *ds, int port, ...@@ -439,7 +439,7 @@ static void ksz_disable_port(struct dsa_switch *ds, int port,
ksz_port_cfg(dev, port, REG_PORT_CTRL_0, PORT_MAC_LOOPBACK, true); ksz_port_cfg(dev, port, REG_PORT_CTRL_0, PORT_MAC_LOOPBACK, true);
} }
static int ksz_sset_count(struct dsa_switch *ds) static int ksz_sset_count(struct dsa_switch *ds, int port)
{ {
return TOTAL_SWITCH_COUNTER_NUM; return TOTAL_SWITCH_COUNTER_NUM;
} }
......
...@@ -604,7 +604,7 @@ mt7530_get_ethtool_stats(struct dsa_switch *ds, int port, ...@@ -604,7 +604,7 @@ mt7530_get_ethtool_stats(struct dsa_switch *ds, int port,
} }
static int static int
mt7530_get_sset_count(struct dsa_switch *ds) mt7530_get_sset_count(struct dsa_switch *ds, int port)
{ {
return ARRAY_SIZE(mt7530_mib); return ARRAY_SIZE(mt7530_mib);
} }
......
...@@ -754,7 +754,7 @@ static int mv88e6320_stats_get_sset_count(struct mv88e6xxx_chip *chip) ...@@ -754,7 +754,7 @@ static int mv88e6320_stats_get_sset_count(struct mv88e6xxx_chip *chip)
STATS_TYPE_BANK1); STATS_TYPE_BANK1);
} }
static int mv88e6xxx_get_sset_count(struct dsa_switch *ds) static int mv88e6xxx_get_sset_count(struct dsa_switch *ds, int port)
{ {
struct mv88e6xxx_chip *chip = ds->priv; struct mv88e6xxx_chip *chip = ds->priv;
......
...@@ -631,7 +631,7 @@ qca8k_get_ethtool_stats(struct dsa_switch *ds, int port, ...@@ -631,7 +631,7 @@ qca8k_get_ethtool_stats(struct dsa_switch *ds, int port,
} }
static int static int
qca8k_get_sset_count(struct dsa_switch *ds) qca8k_get_sset_count(struct dsa_switch *ds, int port)
{ {
return ARRAY_SIZE(ar8327_mib); return ARRAY_SIZE(ar8327_mib);
} }
......
...@@ -359,7 +359,7 @@ struct dsa_switch_ops { ...@@ -359,7 +359,7 @@ struct dsa_switch_ops {
void (*get_strings)(struct dsa_switch *ds, int port, uint8_t *data); void (*get_strings)(struct dsa_switch *ds, int port, uint8_t *data);
void (*get_ethtool_stats)(struct dsa_switch *ds, void (*get_ethtool_stats)(struct dsa_switch *ds,
int port, uint64_t *data); int port, uint64_t *data);
int (*get_sset_count)(struct dsa_switch *ds); int (*get_sset_count)(struct dsa_switch *ds, int port);
/* /*
* ethtool Wake-on-LAN * ethtool Wake-on-LAN
......
...@@ -42,7 +42,7 @@ static int dsa_master_get_sset_count(struct net_device *dev, int sset) ...@@ -42,7 +42,7 @@ static int dsa_master_get_sset_count(struct net_device *dev, int sset)
count += ops->get_sset_count(dev, sset); count += ops->get_sset_count(dev, sset);
if (sset == ETH_SS_STATS && ds->ops->get_sset_count) if (sset == ETH_SS_STATS && ds->ops->get_sset_count)
count += ds->ops->get_sset_count(ds); count += ds->ops->get_sset_count(ds, cpu_dp->index);
return count; return count;
} }
...@@ -76,7 +76,7 @@ static void dsa_master_get_strings(struct net_device *dev, uint32_t stringset, ...@@ -76,7 +76,7 @@ static void dsa_master_get_strings(struct net_device *dev, uint32_t stringset,
* constructed earlier * constructed earlier
*/ */
ds->ops->get_strings(ds, port, ndata); ds->ops->get_strings(ds, port, ndata);
count = ds->ops->get_sset_count(ds); count = ds->ops->get_sset_count(ds, port);
for (i = 0; i < count; i++) { for (i = 0; i < count; i++) {
memmove(ndata + (i * len + sizeof(pfx)), memmove(ndata + (i * len + sizeof(pfx)),
ndata + i * len, len - sizeof(pfx)); ndata + i * len, len - sizeof(pfx));
......
...@@ -605,7 +605,7 @@ static int dsa_slave_get_sset_count(struct net_device *dev, int sset) ...@@ -605,7 +605,7 @@ static int dsa_slave_get_sset_count(struct net_device *dev, int sset)
count = 4; count = 4;
if (ds->ops->get_sset_count) if (ds->ops->get_sset_count)
count += ds->ops->get_sset_count(ds); count += ds->ops->get_sset_count(ds, dp->index);
return count; return count;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment