d6b3c28ccc568522add6f69f2e761e0ee30428f4
[openwrt/staging/dedeckeh.git] /
1 From: Felix Fietkau <nbd@nbd.name>
2 Date: Thu, 3 Nov 2022 17:46:25 +0100
3 Subject: [PATCH] net: ethernet: mtk_eth_soc: drop packets to WDMA if the
4 ring is full
5
6 Improves handling of DMA ring overflow.
7 Clarify other WDMA drop related comment.
8
9 Signed-off-by: Felix Fietkau <nbd@nbd.name>
10 ---
11
12 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
13 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
14 @@ -3711,9 +3711,12 @@ static int mtk_hw_init(struct mtk_eth *e
15 mtk_w32(eth, 0x21021000, MTK_FE_INT_GRP);
16
17 if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
18 - /* PSE should not drop port8 and port9 packets */
19 + /* PSE should not drop port8 and port9 packets from WDMA Tx */
20 mtk_w32(eth, 0x00000300, PSE_DROP_CFG);
21
22 + /* PSE should drop packets to port 8/9 on WDMA Rx ring full */
23 + mtk_w32(eth, 0x00000300, PSE_PPE0_DROP);
24 +
25 /* PSE Free Queue Flow Control */
26 mtk_w32(eth, 0x01fa01f4, PSE_FQFC_CFG2);
27
28 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
29 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
30 @@ -140,6 +140,7 @@
31 #define PSE_FQFC_CFG1 0x100
32 #define PSE_FQFC_CFG2 0x104
33 #define PSE_DROP_CFG 0x108
34 +#define PSE_PPE0_DROP 0x110
35
36 /* PSE Input Queue Reservation Register*/
37 #define PSE_IQ_REV(x) (0x140 + (((x) - 1) << 2))