net: ethernet: mediatek: Enable GDM GDMA_DROP_ALL mode
authorMarkLee <Mark-MC.Lee@mediatek.com>
Wed, 13 Nov 2019 02:38:44 +0000 (10:38 +0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 14 Nov 2019 23:13:28 +0000 (15:13 -0800)
Enable GDM GDMA_DROP_ALL mode to drop all packet during the
stop operation. This is recommended by the mt762x HW design
to drop all packet from GMAC before stopping PDMA.

Signed-off-by: MarkLee <Mark-MC.Lee@mediatek.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mediatek/mtk_eth_soc.c
drivers/net/ethernet/mediatek/mtk_eth_soc.h

index bb9e260d34e4e68333282b2a5f91340e2ddc239f..1923ba76a1ecb6f0547c76a28efaa26d6a27adcc 100644 (file)
@@ -2279,6 +2279,8 @@ static int mtk_stop(struct net_device *dev)
        if (!refcount_dec_and_test(&eth->dma_refcnt))
                return 0;
 
+       mtk_gdm_config(eth, MTK_GDMA_DROP_ALL);
+
        mtk_tx_irq_disable(eth, MTK_TX_DONE_INT);
        mtk_rx_irq_disable(eth, MTK_RX_DONE_INT);
        napi_disable(&eth->tx_napi);
index b16d8d9b196a8c26e15c647254a42c5e55c27df5..85830fe14a1b474613b6b2306b0cf28e49c59a97 100644 (file)
@@ -85,6 +85,7 @@
 #define MTK_GDMA_TCS_EN                BIT(21)
 #define MTK_GDMA_UCS_EN                BIT(20)
 #define MTK_GDMA_TO_PDMA       0x0
+#define MTK_GDMA_DROP_ALL       0x7777
 
 /* Unicast Filter MAC Address Register - Low */
 #define MTK_GDMA_MAC_ADRL(x)   (0x508 + (x * 0x1000))