| From 0141792f8b7300006b874dda1c35acd0abd90d9d Mon Sep 17 00:00:00 2001 |
| From: DENG Qingfang <dqfext@gmail.com> |
| Date: Fri, 15 May 2020 23:25:55 +0800 |
| Subject: net: dsa: mt7530: fix VLAN setup |
| |
| Allow DSA to add VLAN entries even if VLAN filtering is disabled, so |
| enabling it will not block the traffic of existent ports in the bridge |
| |
| Signed-off-by: DENG Qingfang <dqfext@gmail.com> |
| Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| --- |
| drivers/net/dsa/mt7530.c | 13 +------------ |
| 1 file changed, 1 insertion(+), 12 deletions(-) |
| |
| --- a/drivers/net/dsa/mt7530.c |
| +++ b/drivers/net/dsa/mt7530.c |
| @@ -1083,12 +1083,6 @@ mt7530_port_vlan_add(struct dsa_switch * |
| struct mt7530_priv *priv = ds->priv; |
| u16 vid; |
| |
| - /* The port is kept as VLAN-unaware if bridge with vlan_filtering not |
| - * being set. |
| - */ |
| - if (!dsa_port_is_vlan_filtering(&ds->ports[port])) |
| - return; |
| - |
| mutex_lock(&priv->reg_mutex); |
| |
| for (vid = vlan->vid_begin; vid <= vlan->vid_end; ++vid) { |
| @@ -1114,12 +1108,6 @@ mt7530_port_vlan_del(struct dsa_switch * |
| struct mt7530_priv *priv = ds->priv; |
| u16 vid, pvid; |
| |
| - /* The port is kept as VLAN-unaware if bridge with vlan_filtering not |
| - * being set. |
| - */ |
| - if (!dsa_port_is_vlan_filtering(&ds->ports[port])) |
| - return 0; |
| - |
| mutex_lock(&priv->reg_mutex); |
| |
| pvid = priv->ports[port].pvid; |
| @@ -1233,6 +1221,7 @@ mt7530_setup(struct dsa_switch *ds) |
| * as two netdev instances. |
| */ |
| dn = ds->ports[MT7530_CPU_PORT].master->dev.of_node->parent; |
| + ds->configure_vlan_while_not_filtering = true; |
| |
| if (priv->id == ID_MT7530) { |
| regulator_set_voltage(priv->core_pwr, 1000000, 1000000); |