mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-24 15:56:49 +00:00
generic: b53: clear SM_SW_FWD_MODE unconditionally when enabling VLAN
Setting this bit stops BCM53125 (bgmac actually) from receiving any packets. This bit is cleared conditionally in b53_switch_reset and it seems the same is done in bcmrobo.c which never sets that bit again. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 35723
This commit is contained in:
parent
23e71c56ba
commit
3010a0b616
@ -244,10 +244,9 @@ static void b53_enable_vlan(struct b53_device *dev, int enable)
|
||||
b53_read8(dev, B53_VLAN_PAGE, B53_VLAN_CTRL5, &vc5);
|
||||
}
|
||||
|
||||
if (enable) {
|
||||
if (!is63xx(dev))
|
||||
mgmt |= SM_SW_FWD_MODE;
|
||||
mgmt &= ~SM_SW_FWD_MODE;
|
||||
|
||||
if (enable) {
|
||||
vc0 |= VC0_VLAN_EN | VC0_VID_CHK_EN | VC0_VID_HASH_VID;
|
||||
vc1 |= VC1_RX_MCST_UNTAG_EN | VC1_RX_MCST_FWD_EN;
|
||||
vc4 &= ~VC4_ING_VID_CHECK_MASK;
|
||||
@ -267,7 +266,6 @@ static void b53_enable_vlan(struct b53_device *dev, int enable)
|
||||
vc5 &= ~VC5_VID_FFF_EN;
|
||||
}
|
||||
} else {
|
||||
mgmt &= ~SM_SW_FWD_MODE;
|
||||
vc0 &= ~(VC0_VLAN_EN | VC0_VID_CHK_EN | VC0_VID_HASH_VID);
|
||||
vc1 &= ~(VC1_RX_MCST_UNTAG_EN | VC1_RX_MCST_FWD_EN);
|
||||
vc4 &= ~VC4_ING_VID_CHECK_MASK;
|
||||
|
Loading…
Reference in New Issue
Block a user