ar8216: do not strip vlan tags when running with vlan_enable=0
authorFelix Fietkau <nbd@openwrt.org>
Thu, 12 Jan 2012 10:15:08 +0000 (10:15 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Thu, 12 Jan 2012 10:15:08 +0000 (10:15 +0000)
SVN-Revision: 29718

target/linux/generic/files/drivers/net/phy/ar8216.c

index c79a92a0a1b284aa5898ee7b161b7339ed2d93f7..57088a97484fa1ae851e0b12c2c7d9602508c4b2 100644 (file)
@@ -593,10 +593,13 @@ ar8216_hw_apply(struct switch_dev *dev)
                        pvid = i;
                }
 
-               if (priv->vlan && (priv->vlan_tagged & (1 << i))) {
-                       egress = AR8216_OUT_ADD_VLAN;
+               if (priv->vlan) {
+                       if (priv->vlan_tagged & (1 << i))
+                               egress = AR8216_OUT_ADD_VLAN;
+                       else
+                               egress = AR8216_OUT_STRIP_VLAN;
                } else {
-                       egress = AR8216_OUT_STRIP_VLAN;
+                       egress = AR8216_OUT_KEEP;
                }
                if (priv->vlan) {
                        ingress = AR8216_IN_SECURE;