kernel: move accepted mtk_eth_soc patches to generic-backport
[openwrt/staging/noltari.git] / target / linux / generic / backport-5.15 / 730-10-v6.3-net-ethernet-mtk_eth_soc-drop-packets-to-WDMA-if-the.patch
diff --git a/target/linux/generic/backport-5.15/730-10-v6.3-net-ethernet-mtk_eth_soc-drop-packets-to-WDMA-if-the.patch b/target/linux/generic/backport-5.15/730-10-v6.3-net-ethernet-mtk_eth_soc-drop-packets-to-WDMA-if-the.patch
new file mode 100644 (file)
index 0000000..d6b3c28
--- /dev/null
@@ -0,0 +1,37 @@
+From: Felix Fietkau <nbd@nbd.name>
+Date: Thu, 3 Nov 2022 17:46:25 +0100
+Subject: [PATCH] net: ethernet: mtk_eth_soc: drop packets to WDMA if the
+ ring is full
+
+Improves handling of DMA ring overflow.
+Clarify other WDMA drop related comment.
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+
+--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
++++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+@@ -3711,9 +3711,12 @@ static int mtk_hw_init(struct mtk_eth *e
+       mtk_w32(eth, 0x21021000, MTK_FE_INT_GRP);
+       if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
+-              /* PSE should not drop port8 and port9 packets */
++              /* PSE should not drop port8 and port9 packets from WDMA Tx */
+               mtk_w32(eth, 0x00000300, PSE_DROP_CFG);
++              /* PSE should drop packets to port 8/9 on WDMA Rx ring full */
++              mtk_w32(eth, 0x00000300, PSE_PPE0_DROP);
++
+               /* PSE Free Queue Flow Control  */
+               mtk_w32(eth, 0x01fa01f4, PSE_FQFC_CFG2);
+--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
++++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
+@@ -140,6 +140,7 @@
+ #define PSE_FQFC_CFG1         0x100
+ #define PSE_FQFC_CFG2         0x104
+ #define PSE_DROP_CFG          0x108
++#define PSE_PPE0_DROP         0x110
+ /* PSE Input Queue Reservation Register*/
+ #define PSE_IQ_REV(x)         (0x140 + (((x) - 1) << 2))