Commit 36355ddf authored by Jonas Gorski's avatar Jonas Gorski Committed by Jakub Kicinski
Browse files

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: ff39c2d6 ("net: dsa: b53: Add bridge support")
Signed-off-by: default avatarJonas Gorski <jonas.gorski@gmail.com>
Link: https://patch.msgid.link/20250414200434.194422-1-jonas.gorski@gmail.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent ff62b792
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -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);
}