generic: 5.15: qca8k: backport code split patch
[openwrt/staging/svanheule.git] / target / linux / generic / backport-5.15 / 769-v5.19-06-net-dsa-qca8k-unify-bus-id-naming-with-legacy-and-OF.patch
diff --git a/target/linux/generic/backport-5.15/769-v5.19-06-net-dsa-qca8k-unify-bus-id-naming-with-legacy-and-OF.patch b/target/linux/generic/backport-5.15/769-v5.19-06-net-dsa-qca8k-unify-bus-id-naming-with-legacy-and-OF.patch
new file mode 100644 (file)
index 0000000..094686f
--- /dev/null
@@ -0,0 +1,44 @@
+From 8d1af50842bf2774f4edc57054206e909117469b Mon Sep 17 00:00:00 2001
+From: Ansuel Smith <ansuelsmth@gmail.com>
+Date: Sat, 16 Apr 2022 01:30:17 +0200
+Subject: [PATCH 6/6] net: dsa: qca8k: unify bus id naming with legacy and OF
+ mdio bus
+
+Add support for multiple switch with OF mdio bus declaration.
+Unify the bus id naming and use the same logic for both legacy and OF
+mdio bus.
+
+Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/dsa/qca8k.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/dsa/qca8k.c
++++ b/drivers/net/dsa/qca8k.c
+@@ -1323,6 +1323,8 @@ qca8k_mdio_register(struct qca8k_priv *p
+               return -ENOMEM;
+       bus->priv = (void *)priv;
++      snprintf(bus->id, MII_BUS_ID_SIZE, "qca8k-%d.%d",
++               ds->dst->index, ds->index);
+       bus->parent = ds->dev;
+       bus->phy_mask = ~ds->phys_mii_mask;
+       ds->slave_mii_bus = bus;
+@@ -1330,7 +1332,6 @@ qca8k_mdio_register(struct qca8k_priv *p
+       /* Check if the devicetree declare the port:phy mapping */
+       mdio = of_get_child_by_name(priv->dev->of_node, "mdio");
+       if (of_device_is_available(mdio)) {
+-              snprintf(bus->id, MII_BUS_ID_SIZE, "qca8k-%d", ds->index);
+               bus->name = "qca8k slave mii";
+               bus->read = qca8k_internal_mdio_read;
+               bus->write = qca8k_internal_mdio_write;
+@@ -1340,8 +1341,6 @@ qca8k_mdio_register(struct qca8k_priv *p
+       /* If a mapping can't be found the legacy mapping is used,
+        * using the qca8k_port_to_phy function
+        */
+-      snprintf(bus->id, MII_BUS_ID_SIZE, "qca8k-%d.%d",
+-               ds->dst->index, ds->index);
+       bus->name = "qca8k-legacy slave mii";
+       bus->read = qca8k_legacy_mdio_read;
+       bus->write = qca8k_legacy_mdio_write;