--- /dev/null
+From 953b0dcbe2e3f7bee98cc3bca2ec82c8298e9c16 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Marek=20Beh=C3=BAn?= <kabel@kernel.org>
+Date: Thu, 1 Jul 2021 00:22:31 +0200
+Subject: net: dsa: mv88e6xxx: enable SerDes PCS register dump via ethtool -d on Topaz
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Marek Behún <kabel@kernel.org>
+
+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.
+
+Signed-off-by: Marek Behún <kabel@kernel.org>
+Fixes: bf3504cea7d7e ("net: dsa: mv88e6xxx: Add 6390 family PCS registers to ethtool -d")
+Reviewed-by: Andrew Lunn <andrew@lunn.ch>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/dsa/mv88e6xxx/chip.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/net/dsa/mv88e6xxx/chip.c
++++ b/drivers/net/dsa/mv88e6xxx/chip.c
+@@ -3436,6 +3436,8 @@ static const struct mv88e6xxx_ops mv88e6
+ .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 mv88e6
+ .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,
+ };
+
--- /dev/null
+From a03b98d68367b18e5db6d6850e2cc18754fba94a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Marek=20Beh=C3=BAn?= <kabel@kernel.org>
+Date: Thu, 1 Jul 2021 00:22:30 +0200
+Subject: net: dsa: mv88e6xxx: enable SerDes RX stats for Topaz
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Marek Behún <kabel@kernel.org>
+
+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.
+
+Signed-off-by: Marek Behún <kabel@kernel.org>
+Fixes: 0df952873636a ("mv88e6xxx: Add serdes Rx statistics")
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/dsa/mv88e6xxx/chip.c | 6 ++++++
+ drivers/net/dsa/mv88e6xxx/serdes.c | 6 +++---
+ 2 files changed, 9 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/dsa/mv88e6xxx/chip.c
++++ b/drivers/net/dsa/mv88e6xxx/chip.c
+@@ -3433,6 +3433,9 @@ static const struct mv88e6xxx_ops mv88e6
+ .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 mv88e6
+ .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,
+ };
+
+--- a/drivers/net/dsa/mv88e6xxx/serdes.c
++++ b/drivers/net/dsa/mv88e6xxx/serdes.c
+@@ -590,7 +590,7 @@ static struct mv88e6390_serdes_hw_stat m
+
+ 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
+ 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 mv
+ int lane;
+ int i;
+
+- lane = mv88e6390_serdes_get_lane(chip, port);
++ lane = mv88e6xxx_serdes_get_lane(chip, port);
+ if (lane == 0)
+ return 0;
+