aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/701-net-0264-net-dsa-felix-Fix-CPU-port-assignment-when-not-last-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/layerscape/patches-5.4/701-net-0264-net-dsa-felix-Fix-CPU-port-assignment-when-not-last-.patch')
-rw-r--r--target/linux/layerscape/patches-5.4/701-net-0264-net-dsa-felix-Fix-CPU-port-assignment-when-not-last-.patch53
1 files changed, 0 insertions, 53 deletions
diff --git a/target/linux/layerscape/patches-5.4/701-net-0264-net-dsa-felix-Fix-CPU-port-assignment-when-not-last-.patch b/target/linux/layerscape/patches-5.4/701-net-0264-net-dsa-felix-Fix-CPU-port-assignment-when-not-last-.patch
deleted file mode 100644
index 972ec164f1..0000000000
--- a/target/linux/layerscape/patches-5.4/701-net-0264-net-dsa-felix-Fix-CPU-port-assignment-when-not-last-.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 93a32fc4f43ae40a2140acd9258faada11a98ec0 Mon Sep 17 00:00:00 2001
-From: Vladimir Oltean <vladimir.oltean@nxp.com>
-Date: Mon, 18 Nov 2019 20:16:57 +0200
-Subject: [PATCH] net: dsa: felix: Fix CPU port assignment when not last port
-
-On the NXP LS1028A, there are 2 Ethernet links between the Felix switch
-and the ENETC:
-- eno2 <-> swp4, at 2.5G
-- eno3 <-> swp5, at 1G
-
-Only one of the above Ethernet port pairs can act as a DSA link for
-tagging.
-
-When adding initial support for the driver, it was tested only on the 1G
-eno3 <-> swp5 interface, due to the necessity of using PHYLIB initially
-(which treats fixed-link interfaces as emulated C22 PHYs, so it doesn't
-support fixed-link speeds higher than 1G).
-
-After making PHYLINK work, it appears that swp4 still can't act as CPU
-port. So it looks like ocelot_set_cpu_port was being called for swp4,
-but then it was called again for swp5, overwriting the CPU port assigned
-in the DT.
-
-It appears that when you call dsa_upstream_port for a port that is not
-defined in the device tree (such as swp5 when using swp4 as CPU port),
-its dp->cpu_dp pointer is not initialized by dsa_tree_setup_default_cpu,
-and this trips up the following condition in dsa_upstream_port:
-
- if (!cpu_dp)
- return port;
-
-So the moral of the story is: don't call dsa_upstream_port for a port
-that is not defined in the device tree, and therefore its dsa_port
-structure is not completely initialized (ds->num_ports is still 6).
-
-Fixes: 56051948773e ("net: dsa: ocelot: add driver for Felix switch family")
-Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- drivers/net/dsa/ocelot/felix.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/net/dsa/ocelot/felix.c
-+++ b/drivers/net/dsa/ocelot/felix.c
-@@ -286,7 +286,7 @@ static int felix_setup(struct dsa_switch
- for (port = 0; port < ds->num_ports; port++) {
- ocelot_init_port(ocelot, port);
-
-- if (port == dsa_upstream_port(ds, port))
-+ if (dsa_is_cpu_port(ds, port))
- ocelot_set_cpu_port(ocelot, port,
- OCELOT_TAG_PREFIX_NONE,
- OCELOT_TAG_PREFIX_LONG);