]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
bcm53xx: fix switch standalone ports (like "wan")
authorRafał Miłecki <rafal@milecki.pl>
Fri, 27 Feb 2026 19:40:20 +0000 (20:40 +0100)
committerRafał Miłecki <rafal@milecki.pl>
Fri, 27 Feb 2026 19:42:24 +0000 (20:42 +0100)
Fixes: https://github.com/openwrt/openwrt/issues/21187
Fixes: https://github.com/openwrt/openwrt/issues/21349
Fixes: 499a59c234f4 ("kernel: bump 6.12 to 6.12.30")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
target/linux/bcm53xx/patches-6.12/701-net-dsa-b53-disable-EAP-setup-on-Northstar-switches.patch [new file with mode: 0644]

diff --git a/target/linux/bcm53xx/patches-6.12/701-net-dsa-b53-disable-EAP-setup-on-Northstar-switches.patch b/target/linux/bcm53xx/patches-6.12/701-net-dsa-b53-disable-EAP-setup-on-Northstar-switches.patch
new file mode 100644 (file)
index 0000000..83635e3
--- /dev/null
@@ -0,0 +1,38 @@
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Fri, 27 Feb 2026 19:59:16 +0100
+Subject: [PATCH] net: dsa: b53: disable EAP setup on Northstar switches
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It breaks standalone ports.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+---
+ drivers/net/dsa/b53/b53_common.c | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+--- a/drivers/net/dsa/b53/b53_common.c
++++ b/drivers/net/dsa/b53/b53_common.c
+@@ -332,6 +332,21 @@ static void b53_set_eap_mode(struct b53_
+ {
+       u64 eap_conf;
++      /*
++       * On Northstar devices (SoCs with BCM53011 / BCM53012) setting
++       * EAP_MODE_SIMPLIFIED breaks standalone ports.
++       *
++       * See:
++       * https://lore.kernel.org/netdev/ce4d9b7b-aaf6-4796-94fb-8c3d6a1dcd4d@gmail.com/
++       * https://github.com/openwrt/openwrt/issues/21187
++       * https://github.com/openwrt/openwrt/issues/21349
++       *
++       * For details on EAP see commit 4227ea91e265 ("net: dsa: b53: prevent
++       * standalone from trying to forward to other ports").
++       */
++      if (is5301x(dev))
++              return;
++
+       if (is5325(dev) || is5365(dev) || dev->chip_id == BCM5389_DEVICE_ID)
+               return;