From 70e0006278635e05ab2a2f73d52e8d7d1e678ec1 Mon Sep 17 00:00:00 2001
From: Gabor Juhos <juhosg@openwrt.org>
Date: Thu, 1 Mar 2012 19:49:05 +0000
Subject: [PATCH] ar71xx: ag71xx: keep VLAN tags if VLAN is not enabled

SVN-Revision: 30768
---
 .../net/ethernet/atheros/ag71xx/ag71xx_ar7240.c      | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar7240.c b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar7240.c
index ab7abd9e5c..0fc4ba708f 100644
--- a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar7240.c
+++ b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar7240.c
@@ -631,11 +631,15 @@ static void ar7240sw_setup_port(struct ar7240sw *as, unsigned port, u8 portmask)
 		mode = AR7240_PORT_VLAN_MODE_PORT_ONLY;
 	}
 
-	if (as->vlan && (as->vlan_tagged & BIT(port))) {
-		ctrl |= AR7240_PORT_CTRL_VLAN_MODE_ADD <<
-			AR7240_PORT_CTRL_VLAN_MODE_S;
+	if (as->vlan) {
+		if (as->vlan_tagged & BIT(port))
+			ctrl |= AR7240_PORT_CTRL_VLAN_MODE_ADD <<
+				AR7240_PORT_CTRL_VLAN_MODE_S;
+		else
+			ctrl |= AR7240_PORT_CTRL_VLAN_MODE_STRIP <<
+				AR7240_PORT_CTRL_VLAN_MODE_S;
 	} else {
-		ctrl |= AR7240_PORT_CTRL_VLAN_MODE_STRIP <<
+		ctrl |= AR7240_PORT_CTRL_VLAN_MODE_KEEP <<
 			AR7240_PORT_CTRL_VLAN_MODE_S;
 	}
 
-- 
2.30.2