net: dsa: mv88e6xxx: improve 88e6352 serdes statistics detection
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Thu, 3 Feb 2022 13:30:52 +0000 (13:30 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 Feb 2022 14:10:35 +0000 (14:10 +0000)
commit7f7d32bc2608075bba1055b0c8dcd8499643a814
treefd8810c53c7092e8041844ee6255d7bd51c32fc7
parent2ee84cfefb1e72541d3981e0255fba1dee907ff7
net: dsa: mv88e6xxx: improve 88e6352 serdes statistics detection

The decision whether to report serdes statistics currently depends on
the cached C_Mode value for the port, read at probe time or updated by
configuration. However, port 4 can be in "automedia" mode when it is
used as a serdes port, meaning it switches between the internal PHY and
the serdes, changing the read-only C_Mode value depending on which
first gains link. Consequently, the C_Mode value read at probe does not
accurately reflect whether the port has the serdes associated with it.

In "net: dsa: mv88e6xxx: add mv88e6352_g2_scratch_port_has_serdes()",
we added a way to read the hardware configuration to determine which
port has the serdes associated with it. Use this to determine which
port reports the serdes statistics.

Reviewed-by: Marek BehĂșn <kabel@kernel.org>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/mv88e6xxx/serdes.c