ar8216: do not strip vlan tags when running with vlan_enable=0
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Thu, 12 Jan 2012 10:15:08 +0000 (10:15 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Thu, 12 Jan 2012 10:15:08 +0000 (10:15 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29718 3c298f89-4303-0410-b956-a3cf2f4a3e73

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

index c79a92a..57088a9 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;