--- a/drivers/net/ethernet/mediatek/mt7530.c +++ b/drivers/net/ethernet/mediatek/mt7530.c @@ -539,6 +539,7 @@ mt7530_apply_config(struct switch_dev *d u8 etags = priv->vlan_entries[i].etags; u32 val; +#ifndef CONFIG_SOC_MT7621 /* vid of vlan */ val = mt7530_r32(priv, REG_ESW_VLAN_VTIM(i)); if (i % 2 == 0) { @@ -549,7 +550,7 @@ mt7530_apply_config(struct switch_dev *d val |= (vid << 12); } mt7530_w32(priv, REG_ESW_VLAN_VTIM(i), val); - +#endif /* vlan port membership */ if (member) mt7530_w32(priv, REG_ESW_VLAN_VAWD1, REG_ESW_VLAN_VAWD1_IVL_MAC | @@ -569,7 +570,11 @@ mt7530_apply_config(struct switch_dev *d mt7530_w32(priv, REG_ESW_VLAN_VAWD2, val); /* write to vlan table */ +#ifdef CONFIG_SOC_MT7621 + mt7530_vtcr(priv, 1, vid); +#else mt7530_vtcr(priv, 1, i); +#endif } /* Port Default PVID */