diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c index a3059345b2..bef3da98f8 100644 --- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c @@ -2941,8 +2941,11 @@ static int mtk_hw_init(struct mtk_eth *eth, u32 type) /* PSE Free Queue Flow Control */ mtk_w32(eth, 0x01fa01f4, PSE_FQFC_CFG2); - /* PSE should not drop port8 and port9 packets */ - mtk_w32(eth, 0x00000300, PSE_DROP_CFG); + /* PSE should not drop port8 and port9 packets from WDMA Tx */ + mtk_w32(eth, 0x00000300, PSE_NO_DROP_CFG); + + /* PSE should drop p8 and p9 packets when WDMA Rx ring full*/ + mtk_w32(eth, 0x00000300, PSE_PPE0_DROP); /* PSE config input queue threshold */ mtk_w32(eth, 0x001a000e, PSE_IQ_REV(1)); diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.h b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.h index 1b55ed447e..14e507709e 100644 --- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.h +++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.h @@ -124,7 +124,8 @@ /* PSE Free Queue Flow Control */ #define PSE_FQFC_CFG1 0x100 #define PSE_FQFC_CFG2 0x104 -#define PSE_DROP_CFG 0x108 +#define PSE_NO_DROP_CFG 0x108 +#define PSE_PPE0_DROP 0x110 /* PSE Input Queue Reservation Register*/ #define PSE_IQ_REV(x) (0x140 + ((x - 1) * 0x4))