On 01. aug. 2017 15:39, Andrew Lunn wrote:
@@ -704,7 +710,7 @@ static void lan9303_get_ethtool_stats(struct dsa_switch
*ds, int port,
unsigned int u, poff;
int ret;
- poff = port * 0x400;
+ poff = LAN9303_SWITCH_PORT_REG(port, 0);
for (u = 0; u < ARRAY_SIZE(lan9303_mib); u++) {
ret = lan9303_read_switch_reg(chip,
So the actual code is:
for (u = 0; u < ARRAY_SIZE(lan9303_mib); u++) {
ret = lan9303_read_switch_reg(chip,
lan9303_mib[u].offset + poff,
®);
Could this be written as
for (u = 0; u < ARRAY_SIZE(lan9303_mib); u++) {
ret = lan9303_read_switch_port(chip, port, lan9303_mib[u].offset,
®);
It is then clear you are reading the statistics from a port register.
Andrew
Yes it can. Since it is (insignificantly) less efficient, I
chose not to touch it. But I can do it if you like.
Egil