aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/net/dsa/b53/b53_common.c
diff options
context:
space:
mode:
authorJonas Gorski <jonas.gorski@gmail.com>2025-04-14 22:04:34 +0200
committerJakub Kicinski <kuba@kernel.org>2025-04-16 18:10:53 -0700
commit36355ddfe8955f226a88a543ed354b9f6b84cd70 (patch)
tree43e1a1f3431a7b0b262f3d91e57fdff46790459c /drivers/net/dsa/b53/b53_common.c
parentMerge branch 'ynl-avoid-leaks-in-attr-override-and-spec-fixes-for-c' (diff)
downloadwireguard-linux-36355ddfe8955f226a88a543ed354b9f6b84cd70.tar.xz
wireguard-linux-36355ddfe8955f226a88a543ed354b9f6b84cd70.zip
net: b53: enable BPDU reception for management port
For STP to work, receiving BPDUs is essential, but the appropriate bit was never set. Without GC_RX_BPDU_EN, the switch chip will filter all BPDUs, even if an appropriate PVID VLAN was setup. Fixes: ff39c2d68679 ("net: dsa: b53: Add bridge support") Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> Link: https://patch.msgid.link/20250414200434.194422-1-jonas.gorski@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to '')
-rw-r--r--drivers/net/dsa/b53/b53_common.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c
index 61d164ffb3ae..e5ba71897906 100644
--- a/drivers/net/dsa/b53/b53_common.c
+++ b/drivers/net/dsa/b53/b53_common.c
@@ -737,6 +737,15 @@ static void b53_enable_mib(struct b53_device *dev)
b53_write8(dev, B53_MGMT_PAGE, B53_GLOBAL_CONFIG, gc);
}
+static void b53_enable_stp(struct b53_device *dev)
+{
+ u8 gc;
+
+ b53_read8(dev, B53_MGMT_PAGE, B53_GLOBAL_CONFIG, &gc);
+ gc |= GC_RX_BPDU_EN;
+ b53_write8(dev, B53_MGMT_PAGE, B53_GLOBAL_CONFIG, gc);
+}
+
static u16 b53_default_pvid(struct b53_device *dev)
{
if (is5325(dev) || is5365(dev))
@@ -876,6 +885,7 @@ static int b53_switch_reset(struct b53_device *dev)
}
b53_enable_mib(dev);
+ b53_enable_stp(dev);
return b53_flush_arl(dev, FAST_AGE_STATIC);
}