mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-04 06:54:27 -05:00 
			
		
		
		
	Refresh pending patches with make target/linux/refresh. Signed-off-by: Weijie Gao <hackpascal@gmail.com>
		
			
				
	
	
		
			38 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From b954d61d9ecfa64450fc178586719dc2a95b92a7 Mon Sep 17 00:00:00 2001
 | 
						|
From: Christian Marangi <ansuelsmth@gmail.com>
 | 
						|
Date: Tue, 20 Jun 2023 21:48:24 +0200
 | 
						|
Subject: [PATCH 3/4] net: dsa: qca8k: enable flooding to both CPU port
 | 
						|
 | 
						|
To permit a multi-CPU setup, flood all unknown frames to all CPU ports.
 | 
						|
Each CPU port should have correct LOOKUP MEMBER configuration to
 | 
						|
prevent receiving duplicate packets from user ports.
 | 
						|
 | 
						|
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 | 
						|
---
 | 
						|
 drivers/net/dsa/qca/qca8k-8xxx.c | 13 +++++--------
 | 
						|
 1 file changed, 5 insertions(+), 8 deletions(-)
 | 
						|
 | 
						|
--- a/drivers/net/dsa/qca/qca8k-8xxx.c
 | 
						|
+++ b/drivers/net/dsa/qca/qca8k-8xxx.c
 | 
						|
@@ -1901,15 +1901,12 @@ qca8k_setup(struct dsa_switch *ds)
 | 
						|
 		}
 | 
						|
 	}
 | 
						|
 
 | 
						|
-	/* Forward all unknown frames to CPU port for Linux processing
 | 
						|
-	 * Notice that in multi-cpu config only one port should be set
 | 
						|
-	 * for igmp, unknown, multicast and broadcast packet
 | 
						|
-	 */
 | 
						|
+	/* Forward all unknown frames to CPU port for Linux processing */
 | 
						|
 	ret = qca8k_write(priv, QCA8K_REG_GLOBAL_FW_CTRL1,
 | 
						|
-			  FIELD_PREP(QCA8K_GLOBAL_FW_CTRL1_IGMP_DP_MASK, BIT(cpu_port)) |
 | 
						|
-			  FIELD_PREP(QCA8K_GLOBAL_FW_CTRL1_BC_DP_MASK, BIT(cpu_port)) |
 | 
						|
-			  FIELD_PREP(QCA8K_GLOBAL_FW_CTRL1_MC_DP_MASK, BIT(cpu_port)) |
 | 
						|
-			  FIELD_PREP(QCA8K_GLOBAL_FW_CTRL1_UC_DP_MASK, BIT(cpu_port)));
 | 
						|
+			  FIELD_PREP(QCA8K_GLOBAL_FW_CTRL1_IGMP_DP_MASK, dsa_cpu_ports(ds)) |
 | 
						|
+			  FIELD_PREP(QCA8K_GLOBAL_FW_CTRL1_BC_DP_MASK, dsa_cpu_ports(ds)) |
 | 
						|
+			  FIELD_PREP(QCA8K_GLOBAL_FW_CTRL1_MC_DP_MASK, dsa_cpu_ports(ds)) |
 | 
						|
+			  FIELD_PREP(QCA8K_GLOBAL_FW_CTRL1_UC_DP_MASK, dsa_cpu_ports(ds)));
 | 
						|
 	if (ret)
 | 
						|
 		return ret;
 | 
						|
 
 |