diff options
Diffstat (limited to 'target/linux/mediatek/patches-4.9/0042-net-next-mediatek-honour-special-tag-bit-inside-RX-D.patch')
-rw-r--r-- | target/linux/mediatek/patches-4.9/0042-net-next-mediatek-honour-special-tag-bit-inside-RX-D.patch | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/target/linux/mediatek/patches-4.9/0042-net-next-mediatek-honour-special-tag-bit-inside-RX-D.patch b/target/linux/mediatek/patches-4.9/0042-net-next-mediatek-honour-special-tag-bit-inside-RX-D.patch deleted file mode 100644 index 4f2c7b2e6e..0000000000 --- a/target/linux/mediatek/patches-4.9/0042-net-next-mediatek-honour-special-tag-bit-inside-RX-D.patch +++ /dev/null @@ -1,50 +0,0 @@ -From a306af3b97c56b9e224a2f9ee04838a2d32ff60b Mon Sep 17 00:00:00 2001 -From: John Crispin <john@phrozen.org> -Date: Wed, 9 Aug 2017 14:44:07 +0200 -Subject: [PATCH 42/57] net-next: mediatek: honour special tag bit inside RX - DMA descriptor - -For HW NAT/QoS to work the DSA driver needs to turn the special tag bit -inside the ingress control register on. This has the side effect that -the code working out which ingress gmac we have breaks. Fix this by -honouring the special tag bit inside the RX free descriptor. - -Signed-off-by: John Crispin <john@phrozen.org> ---- - drivers/net/ethernet/mediatek/mtk_eth_soc.c | 14 ++++++++++---- - drivers/net/ethernet/mediatek/mtk_eth_soc.h | 1 + - 2 files changed, 11 insertions(+), 4 deletions(-) - ---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c -+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -933,10 +933,16 @@ static int mtk_poll_rx(struct napi_struc - if (!(trxd.rxd2 & RX_DMA_DONE)) - break; - -- /* find out which mac the packet come from. values start at 1 */ -- mac = (trxd.rxd4 >> RX_DMA_FPORT_SHIFT) & -- RX_DMA_FPORT_MASK; -- mac--; -+ /* find out which mac the packet comes from. If the special tag is -+ * we can assume that the traffic is coming from the builtin mt7530 -+ * and the DSA driver has loaded. FPORT will be the physical switch -+ * port in this case rather than the FE forward port id. */ -+ if (!(trxd.rxd4 & RX_DMA_SP_TAG)) { -+ /* values start at 1 */ -+ mac = (trxd.rxd4 >> RX_DMA_FPORT_SHIFT) & -+ RX_DMA_FPORT_MASK; -+ mac--; -+ } - - netdev = eth->netdev[mac]; - ---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h -+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h -@@ -284,6 +284,7 @@ - - /* QDMA descriptor rxd4 */ - #define RX_DMA_L4_VALID BIT(24) -+#define RX_DMA_SP_TAG BIT(22) - #define RX_DMA_FPORT_SHIFT 19 - #define RX_DMA_FPORT_MASK 0x7 - |