net: dsa: mv88e6xxx: enable SerDes RX stats for Topaz
PATCH 1/2 net: dsa: mv88e6xxx: enable SerDes RX stats for Topaz
commit a03b98d68367b18e5db6d6850e2cc18754fba94a upstream.
Commit 0df952873636a ("mv88e6xxx: Add serdes Rx statistics") added support for RX statistics on SerDes ports for Peridot.
This same implementation is also valid for Topaz, but was not enabled at the time.
We need to use the generic .serdes_get_lane() method instead of the Peridot specific one in the stats methods so that on Topaz the proper one is used.
--- drivers/net/dsa/mv88e6xxx/chip.c | 6 ++++++ drivers/net/dsa/mv88e6xxx/serdes.c | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-)
drivers/net/dsa/mv88e6xxx/chip.c +6 -0
@@ -3433,6 +3433,9 @@ static const struct mv88e6xxx_ops mv88e6141_ops = { .serdes_irq_enable = mv88e6390_serdes_irq_enable, .serdes_irq_status = mv88e6390_serdes_irq_status, .gpio_ops = &mv88e6352_gpio_ops, + .serdes_get_sset_count = mv88e6390_serdes_get_sset_count, + .serdes_get_strings = mv88e6390_serdes_get_strings, + .serdes_get_stats = mv88e6390_serdes_get_stats, .phylink_validate = mv88e6341_phylink_validate, };
@@ -4205,6 +4208,9 @@ static const struct mv88e6xxx_ops mv88e6341_ops = { .gpio_ops = &mv88e6352_gpio_ops, .avb_ops = &mv88e6390_avb_ops, .ptp_ops = &mv88e6352_ptp_ops, + .serdes_get_sset_count = mv88e6390_serdes_get_sset_count, + .serdes_get_strings = mv88e6390_serdes_get_strings, + .serdes_get_stats = mv88e6390_serdes_get_stats, .phylink_validate = mv88e6341_phylink_validate, };
drivers/net/dsa/mv88e6xxx/serdes.c +3 -3
@@ -590,7 +590,7 @@ static struct mv88e6390_serdes_hw_stat mv88e6390_serdes_hw_stats[] = {int mv88e6390_serdes_get_sset_count (struct mv88e6xxx_chip *chip,int port) { -if (mv88e6390_serdes_get_lane (chip, port) ==0 ) +if (mv88e6xxx_serdes_get_lane (chip, port) ==0 )return 0 ;return ARRAY_SIZE (mv88e6390_serdes_hw_stats);
@@ -602,7 +602,7 @@ int mv88e6390_serdes_get_strings(struct mv88e6xxx_chip *chip,struct mv88e6390_serdes_hw_stat *stat;int i; -if (mv88e6390_serdes_get_lane (chip, port) ==0 ) +if (mv88e6xxx_serdes_get_lane (chip, port) ==0 )return 0 ;for (i =0 ; i <ARRAY_SIZE (mv88e6390_serdes_hw_stats); i++) {
@@ -638,7 +638,7 @@ int mv88e6390_serdes_get_stats(struct mv88e6xxx_chip *chip, int port,int lane;int i; - lane =mv88e6390_serdes_get_lane (chip, port); + lane =mv88e6xxx_serdes_get_lane (chip, port);if (lane ==0 )return 0 ;
Signature · 1 line
2.31.1
PATCH 2/2 net: dsa: mv88e6xxx: enable SerDes PCS register dump via ethtool -d on Topaz
commit 953b0dcbe2e3f7bee98cc3bca2ec82c8298e9c16 upstream.
Commit bf3504cea7d7e ("net: dsa: mv88e6xxx: Add 6390 family PCS registers to ethtool -d") added support for dumping SerDes PCS registers via ethtool -d for Peridot.
The same implementation is also valid for Topaz, but was not enabled at the time.
--- drivers/net/dsa/mv88e6xxx/chip.c | 4 ++++ 1 file changed, 4 insertions(+)
drivers/net/dsa/mv88e6xxx/chip.c +4 -0
@@ -3436,6 +3436,8 @@ static const struct mv88e6xxx_ops mv88e6141_ops = { .serdes_get_sset_count = mv88e6390_serdes_get_sset_count, .serdes_get_strings = mv88e6390_serdes_get_strings, .serdes_get_stats = mv88e6390_serdes_get_stats, + .serdes_get_regs_len = mv88e6390_serdes_get_regs_len, + .serdes_get_regs = mv88e6390_serdes_get_regs, .phylink_validate = mv88e6341_phylink_validate, };
@@ -4211,6 +4213,8 @@ static const struct mv88e6xxx_ops mv88e6341_ops = { .serdes_get_sset_count = mv88e6390_serdes_get_sset_count, .serdes_get_strings = mv88e6390_serdes_get_strings, .serdes_get_stats = mv88e6390_serdes_get_stats, + .serdes_get_regs_len = mv88e6390_serdes_get_regs_len, + .serdes_get_regs = mv88e6390_serdes_get_regs, .phylink_validate = mv88e6341_phylink_validate, };
Signature · 1 line
2.31.1