You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.5 KiB
41 lines
1.5 KiB
From 53e3d9af39805a7e1ba81a047a9ab433be0e82f5 Mon Sep 17 00:00:00 2001
|
|
From: John Crispin <john@phrozen.org>
|
|
Date: Wed, 9 Aug 2017 14:56:53 +0200
|
|
Subject: [PATCH 43/57] net-next: mediatek: enable special tag indication for
|
|
PDMA
|
|
|
|
The Ingress special tag indication was only enabled for QDMA and not PDMA.
|
|
Properly initialize the STAG bit. This broke HW NAT and Qos from working
|
|
for traffic coming in via a DSA device. The PPE failed to properly parse
|
|
the traffic as it was not expecting the special tag.
|
|
|
|
Signed-off-by: John Crispin <john@phrozen.org>
|
|
---
|
|
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 ++
|
|
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 4 ++++
|
|
2 files changed, 6 insertions(+)
|
|
|
|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
|
@@ -1985,6 +1985,8 @@ 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);
|
|
+ val = mtk_r32(eth, MTK_CDMP_IG_CTRL);
|
|
+ mtk_w32(eth, val | MTK_CDMP_STAG_EN, MTK_CDMP_IG_CTRL);
|
|
|
|
/* Enable RX VLan Offloading */
|
|
if (MTK_HW_FEATURES & NETIF_F_HW_VLAN_CTAG_RX)
|
|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
|
@@ -72,6 +72,10 @@
|
|
#define MTK_CDMQ_IG_CTRL 0x1400
|
|
#define MTK_CDMQ_STAG_EN BIT(0)
|
|
|
|
+/* CDMP Ingress Control Register */
|
|
+#define MTK_CDMP_IG_CTRL 0x400
|
|
+#define MTK_CDMP_STAG_EN BIT(0)
|
|
+
|
|
/* CDMP Exgress Control Register */
|
|
#define MTK_CDMP_EG_CTRL 0x404
|
|
|
|
|