generic: 6.1: backport support for Marvell 88E6361 switch
[openwrt/openwrt.git] / target / linux / generic / backport-6.1 / 807-v6.5-04-net-dsa-mv88e6xxx-fix-88E6393X-family-internal-phys-.patch
diff --git a/target/linux/generic/backport-6.1/807-v6.5-04-net-dsa-mv88e6xxx-fix-88E6393X-family-internal-phys-.patch b/target/linux/generic/backport-6.1/807-v6.5-04-net-dsa-mv88e6xxx-fix-88E6393X-family-internal-phys-.patch
new file mode 100644 (file)
index 0000000..b7db7fb
--- /dev/null
@@ -0,0 +1,52 @@
+From eb8c75f82a6711387f3b9e03e28923f3e75a761b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Alexis=20Lothor=C3=A9?= <alexis.lothore@bootlin.com>
+Date: Mon, 29 May 2023 10:02:44 +0200
+Subject: [PATCH 4/6] net: dsa: mv88e6xxx: fix 88E6393X family internal phys
+ layout
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+88E6393X/88E6193X/88E6191X switches have in fact 8 internal PHYs, but those
+are not present starting at port 0: supported ports go from 1 to 8
+
+Signed-off-by: Alexis LothorĂ© <alexis.lothore@bootlin.com>
+Reviewed-by: Andrew Lunn <andrew@lunn.ch>
+Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+---
+ drivers/net/dsa/mv88e6xxx/chip.c | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/dsa/mv88e6xxx/chip.c
++++ b/drivers/net/dsa/mv88e6xxx/chip.c
+@@ -5942,7 +5942,8 @@ static const struct mv88e6xxx_info mv88e
+               .name = "Marvell 88E6191X",
+               .num_databases = 4096,
+               .num_ports = 11,        /* 10 + Z80 */
+-              .num_internal_phys = 9,
++              .num_internal_phys = 8,
++              .internal_phys_offset = 1,
+               .max_vid = 8191,
+               .max_sid = 63,
+               .port_base_addr = 0x0,
+@@ -5965,7 +5966,8 @@ static const struct mv88e6xxx_info mv88e
+               .name = "Marvell 88E6193X",
+               .num_databases = 4096,
+               .num_ports = 11,        /* 10 + Z80 */
+-              .num_internal_phys = 9,
++              .num_internal_phys = 8,
++              .internal_phys_offset = 1,
+               .max_vid = 8191,
+               .max_sid = 63,
+               .port_base_addr = 0x0,
+@@ -6284,7 +6286,8 @@ static const struct mv88e6xxx_info mv88e
+               .name = "Marvell 88E6393X",
+               .num_databases = 4096,
+               .num_ports = 11,        /* 10 + Z80 */
+-              .num_internal_phys = 9,
++              .num_internal_phys = 8,
++              .internal_phys_offset = 1,
+               .max_vid = 8191,
+               .max_sid = 63,
+               .port_base_addr = 0x0,