net: dsa: b53: Prevent tagged VLAN on port 7 for 7278
authorFlorian Fainelli <f.fainelli@gmail.com>
Mon, 30 Mar 2020 21:38:48 +0000 (14:38 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 31 Mar 2020 02:55:42 +0000 (19:55 -0700)
On 7278, port 7 of the switch connects to the ASP UniMAC which is not
capable of processing VLAN tagged frames. We can still allow the port to
be part of a VLAN entry, and we may want it to be untagged on egress on
that VLAN because of that limitation.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/b53/b53_common.c

index 5cb678e8b9cdaf967183ff6cc1835bc4e292d2da..42c41b0916827578d9250bd8e32e6d7832be13e9 100644 (file)
@@ -1355,6 +1355,14 @@ int b53_vlan_prepare(struct dsa_switch *ds, int port,
        if ((is5325(dev) || is5365(dev)) && vlan->vid_begin == 0)
                return -EOPNOTSUPP;
 
+       /* Port 7 on 7278 connects to the ASP's UniMAC which is not capable of
+        * receiving VLAN tagged frames at all, we can still allow the port to
+        * be configured for egress untagged.
+        */
+       if (dev->chip_id == BCM7278_DEVICE_ID && port == 7 &&
+           !(vlan->flags & BRIDGE_VLAN_INFO_UNTAGGED))
+               return -EINVAL;
+
        if (vlan->vid_end > dev->num_vlans)
                return -ERANGE;