net: ethernet: mtk_eth_soc: drop packets to WDMA if the ring is full
authorFelix Fietkau <nbd@nbd.name>
Wed, 16 Nov 2022 08:07:30 +0000 (09:07 +0100)
committerJakub Kicinski <kuba@kernel.org>
Sat, 19 Nov 2022 03:46:06 +0000 (19:46 -0800)
Improves handling of DMA ring overflow.
Clarify other WDMA drop related comment.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Link: https://lore.kernel.org/r/20221116080734.44013-3-nbd@nbd.name
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/mediatek/mtk_eth_soc.c
drivers/net/ethernet/mediatek/mtk_eth_soc.h

index d8d894646c729a640e9fec4004bcad3a64de5d63..db017ebdb9679f249d28ce6bcafac6d41be6ea76 100644 (file)
@@ -3425,9 +3425,12 @@ static int mtk_hw_init(struct mtk_eth *eth)
        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);
 
index 72d3bfc2323d10855a424ce9a99b17fe3bc74207..eaaa0c67ef2ae7df32c8ae7ae6fd767ab3efdece 100644 (file)
 #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))