mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-25 16:31:13 +00:00
424210b7be
Manually rebased: backport-5.15/715-v6.0-net-ethernet-mtk_eth_soc-add-the-capability-to-run-m.patch hack-5.15/645-netfilter-connmark-introduce-set-dscpmark.patch[1] Removed upstreamed: pending-5.15/701-netfilter-nf_flow_table-add-missing-locking.patch[2] All other patches automatically rebased 1. Rebase by Kevin 'ldir' Darbyshire-Bryant<ldir@darbyshire-bryant.me.uk> 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.81&id=8db9e60cdfdae5b049e32e82323da8f0f989066a Build system: x86_64 Build-tested: bcm2711/RPi4B, filogic/xiaomi_redmi-router-ax6000-stock Run-tested: bcm2711/RPi4B, filogic/xiaomi_redmi-router-ax6000-stock Signed-off-by: John Audia <therealgraysky@proton.me>
38 lines
1.2 KiB
Diff
38 lines
1.2 KiB
Diff
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
|
|
@@ -3531,9 +3531,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
|
|
@@ -127,6 +127,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))
|