summaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-01-12 10:15:08 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-01-12 10:15:08 +0000
commit25b268205aa390668fa889ad3148b5054ca53bbd (patch)
treefff9b3e6f039ea6aa75b8831b2792129f5def057 /target/linux
parent1b3efb335284abe970e32a2a9f8347de847585cd (diff)
ar8216: do not strip vlan tags when running with vlan_enable=0
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29718 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/generic/files/drivers/net/phy/ar8216.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c
index c79a92a0a..57088a974 100644
--- a/target/linux/generic/files/drivers/net/phy/ar8216.c
+++ b/target/linux/generic/files/drivers/net/phy/ar8216.c
@@ -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;