Signed-off-by: Muciri Gatimu <muciri@openmesh.com> Signed-off-by: Shashidhar Lakkavalli <shashidhar.lakkavalli@openmesh.com> Signed-off-by: John Crispin <john@phrozen.org>
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From de3c04b820e1d396bf12e88ea87271a84f6fedb7 Mon Sep 17 00:00:00 2001
 | 
						|
From: Sean Wang <sean.wang@mediatek.com>
 | 
						|
Date: Wed, 29 Mar 2017 17:38:21 +0800
 | 
						|
Subject: [PATCH 29/57] net-next: ethernet: mediatek: add CDM able to recognize
 | 
						|
 the tag for DSA
 | 
						|
 | 
						|
The patch adds the setup for allowing CDM can recognize these packets with
 | 
						|
carrying port-distinguishing tag. Otherwise, these tagging packets will be
 | 
						|
handled incorrectly by CDM. The setup is also working out for general
 | 
						|
untag packets as well.
 | 
						|
 | 
						|
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
 | 
						|
Signed-off-by: Landen Chao <Landen.Chao@mediatek.com>
 | 
						|
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
 | 
						|
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
 | 
						|
---
 | 
						|
 drivers/net/ethernet/mediatek/mtk_eth_soc.c | 6 ++++++
 | 
						|
 drivers/net/ethernet/mediatek/mtk_eth_soc.h | 4 ++++
 | 
						|
 2 files changed, 10 insertions(+)
 | 
						|
 | 
						|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 | 
						|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 | 
						|
@@ -1864,6 +1864,12 @@ static int mtk_hw_init(struct mtk_eth *e
 | 
						|
 	val = mtk_r32(eth, MTK_CDMQ_IG_CTRL);
 | 
						|
 	mtk_w32(eth, val | MTK_CDMQ_STAG_EN, MTK_CDMQ_IG_CTRL);
 | 
						|
 
 | 
						|
+	/* Indicates CDM to parse the MTK special tag from CPU
 | 
						|
+	 * which also is working out for untag packets.
 | 
						|
+	 */
 | 
						|
+	val = mtk_r32(eth, MTK_CDMQ_IG_CTRL);
 | 
						|
+	mtk_w32(eth, val | MTK_CDMQ_STAG_EN, MTK_CDMQ_IG_CTRL);
 | 
						|
+
 | 
						|
 	/* Enable RX VLan Offloading */
 | 
						|
 	mtk_w32(eth, 1, MTK_CDMP_EG_CTRL);
 | 
						|
 
 | 
						|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
 | 
						|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
 | 
						|
@@ -74,6 +74,10 @@
 | 
						|
 #define MTK_CDMQ_IG_CTRL	0x1400
 | 
						|
 #define MTK_CDMQ_STAG_EN	BIT(0)
 | 
						|
 
 | 
						|
+/* CDMP Ingress Control Register */
 | 
						|
+#define MTK_CDMQ_IG_CTRL	0x1400
 | 
						|
+#define MTK_CDMQ_STAG_EN	BIT(0)
 | 
						|
+
 | 
						|
 /* CDMP Exgress Control Register */
 | 
						|
 #define MTK_CDMP_EG_CTRL	0x404
 | 
						|
 
 |