OSDN Git Service

net: dsa: mt7530: Use the DSA vlan_filtering helper function
authorVladimir Oltean <olteanv@gmail.com>
Sun, 28 Apr 2019 18:45:50 +0000 (21:45 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 1 May 2019 03:05:29 +0000 (23:05 -0400)
This was recently introduced, so keeping state inside the driver is no
longer necessary.

Signed-off-by: Vladimir Oltean <olteanv@gmail.com>
Suggested-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/mt7530.c
drivers/net/dsa/mt7530.h

index 3530b6f..8d531c5 100644 (file)
@@ -828,11 +828,9 @@ mt7530_port_set_vlan_unaware(struct dsa_switch *ds, int port)
        mt7530_rmw(priv, MT7530_PVC_P(port), VLAN_ATTR_MASK,
                   VLAN_ATTR(MT7530_VLAN_TRANSPARENT));
 
-       priv->ports[port].vlan_filtering = false;
-
        for (i = 0; i < MT7530_NUM_PORTS; i++) {
                if (dsa_is_user_port(ds, i) &&
-                   priv->ports[i].vlan_filtering) {
+                   dsa_port_is_vlan_filtering(&ds->ports[i])) {
                        all_user_ports_removed = false;
                        break;
                }
@@ -891,8 +889,8 @@ mt7530_port_bridge_leave(struct dsa_switch *ds, int port,
                 * And the other port's port matrix cannot be broken when the
                 * other port is still a VLAN-aware port.
                 */
-               if (!priv->ports[i].vlan_filtering &&
-                   dsa_is_user_port(ds, i) && i != port) {
+               if (dsa_is_user_port(ds, i) && i != port &&
+                  !dsa_port_is_vlan_filtering(&ds->ports[i])) {
                        if (dsa_to_port(ds, i)->bridge_dev != bridge)
                                continue;
                        if (priv->ports[i].enable)
@@ -1011,10 +1009,6 @@ static int
 mt7530_port_vlan_filtering(struct dsa_switch *ds, int port,
                           bool vlan_filtering)
 {
-       struct mt7530_priv *priv = ds->priv;
-
-       priv->ports[port].vlan_filtering = vlan_filtering;
-
        if (vlan_filtering) {
                /* The port is being kept as VLAN-unaware port when bridge is
                 * set up with vlan_filtering not being set, Otherwise, the
@@ -1139,7 +1133,7 @@ mt7530_port_vlan_add(struct dsa_switch *ds, int port,
        /* The port is kept as VLAN-unaware if bridge with vlan_filtering not
         * being set.
         */
-       if (!priv->ports[port].vlan_filtering)
+       if (!dsa_port_is_vlan_filtering(&ds->ports[port]))
                return;
 
        mutex_lock(&priv->reg_mutex);
@@ -1170,7 +1164,7 @@ mt7530_port_vlan_del(struct dsa_switch *ds, int port,
        /* The port is kept as VLAN-unaware if bridge with vlan_filtering not
         * being set.
         */
-       if (!priv->ports[port].vlan_filtering)
+       if (!dsa_port_is_vlan_filtering(&ds->ports[port]))
                return 0;
 
        mutex_lock(&priv->reg_mutex);
index a95ed95..1eec7bd 100644 (file)
@@ -410,7 +410,6 @@ struct mt7530_port {
        bool enable;
        u32 pm;
        u16 pvid;
-       bool vlan_filtering;
 };
 
 /* struct mt7530_priv -        This is the main data structure for holding the state