From 51865510d0f896ca8c9a9e327f3991401c41bbaf Mon Sep 17 00:00:00 2001
From: David Bauer <mail@david-bauer.net>
Date: Tue, 15 Sep 2020 11:19:14 +0200
Subject: [PATCH] ipq40xx: enable FRITZRepeater 3000 ports on switch

The ethernet ports on the AVM FRITZRepeater 3000 are not separated
between LAN and WAN in the stock firmware. OpenWrt currently abstracts
port 4 as eth0 and port 5 as eth1, bridging them in the kernel.

This patch adjusts the GMAC port bitmasks and default bitmask for ar40xx
to bridge them on the switch, avoiding traffic on both ports to pass
thru the CPU.

Signed-off-by: David Bauer <mail@david-bauer.net>
Signed-off-by: maurerr <mariusd84@gmail.com>
---
 target/linux/ipq40xx/base-files/etc/board.d/02_network   | 5 ++++-
 .../arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts     | 9 +++++++--
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/target/linux/ipq40xx/base-files/etc/board.d/02_network b/target/linux/ipq40xx/base-files/etc/board.d/02_network
index 5c1bdc51cee..2966fbf1fba 100755
--- a/target/linux/ipq40xx/base-files/etc/board.d/02_network
+++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network
@@ -61,7 +61,10 @@ ipq40xx_setup_interfaces()
 		ucidef_add_switch "switch0" \
 			"0u@eth0" "1:lan" "2:lan" "3:lan" "4:lan"
 		;;
-	avm,fritzrepeater-3000|\
+	avm,fritzrepeater-3000)
+		ucidef_add_switch "switch0" \
+			"0u@eth0" "4:lan:1" "5:lan:2"
+		;;
 	compex,wpj419|\
 	compex,wpj428|\
 	engenius,eap2200)
diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts
index 6914917eb32..6a132adade8 100644
--- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts
+++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts
@@ -58,12 +58,13 @@
 		ess-switch@c000000 {
 			status = "okay";
 
-			switch_lan_bmp = <0x10>;
-			switch_wan_bmp = <0x20>;
+			switch_lan_bmp = <0x30>;
+			switch_wan_bmp = <0x02>;
 		};
 
 		edma@c080000 {
 			status = "okay";
+			qcom,num_gmac = <1>;
 		};
 	};
 
@@ -209,6 +210,10 @@
 	};
 };
 
+&gmac0 {
+	vlan_tag = <1 0x30>;
+};
+
 &cryptobam {
 	status = "okay";
 };