[openwrt/openwrt] ramips: properly map pvid for vlans with remapped vid on mt7530/762x switches
LEDE Commits
lede-commits at lists.infradead.org
Wed Feb 14 07:43:39 PST 2018
jow pushed a commit to openwrt/openwrt.git, branch master:
https://git.lede-project.org/341b1427fc247fd4c53f390f2f17258dcf052a50
commit 341b1427fc247fd4c53f390f2f17258dcf052a50
Author: Jo-Philipp Wich <jo at mein.io>
AuthorDate: Tue Feb 13 15:37:49 2018 +0100
ramips: properly map pvid for vlans with remapped vid on mt7530/762x switches
Currently, untagged port primary vlan IDs are set to the VLAN table index,
and not the actual VLAN ID, breaking configurations with IDs deviating from
the VLAN index.
Fix the issue by resolving the per-port pvid property to the target VLAN ID
value before committing to the hardware.
Fixes FS#991, FS#1147, FS#1341
Signed-off-by: Jo-Philipp Wich <jo at mein.io>
---
target/linux/ramips/files-4.9/drivers/net/ethernet/mtk/mt7530.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/target/linux/ramips/files-4.9/drivers/net/ethernet/mtk/mt7530.c b/target/linux/ramips/files-4.9/drivers/net/ethernet/mtk/mt7530.c
index e61f9fd..21f8926 100644
--- a/target/linux/ramips/files-4.9/drivers/net/ethernet/mtk/mt7530.c
+++ b/target/linux/ramips/files-4.9/drivers/net/ethernet/mtk/mt7530.c
@@ -616,10 +616,16 @@ mt7530_apply_config(struct switch_dev *dev)
/* Port Default PVID */
for (i = 0; i < MT7530_NUM_PORTS; i++) {
+ int vlan = priv->port_entries[i].pvid;
+ u16 pvid = 0;
u32 val;
+
+ if (vlan < MT7530_NUM_VLANS && priv->vlan_entries[vlan].member)
+ pvid = priv->vlan_entries[vlan].vid;
+
val = mt7530_r32(priv, REG_ESW_PORT_PPBV1(i));
val &= ~0xfff;
- val |= priv->port_entries[i].pvid;
+ val |= pvid;
mt7530_w32(priv, REG_ESW_PORT_PPBV1(i), val);
}
More information about the lede-commits
mailing list