summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2016-09-27 09:41:38 -0400
committerDavid S. Miller <davem@davemloft.net>2016-09-27 09:41:38 -0400
commit44675a6df839259102178c1e0c3c082821fcb8b7 (patch)
tree77f5993f8b19f1ed6c119964eed79ba5245d1e6c
parent3783c09eabb78151bcef539ffb16d603b82024f5 (diff)
parentca3ba106a9979dd21988cec296462b4f49b37ace (diff)
downloadtalos-obmc-linux-44675a6df839259102178c1e0c3c082821fcb8b7.tar.gz
talos-obmc-linux-44675a6df839259102178c1e0c3c082821fcb8b7.zip
Merge branch 'mediatek-pdam-lro-fixes'
Nelson Chang says: ==================== net: ethernet: mediatek: some bug fixes for PDAM and HW LRO 1) Add to stop PDMA while stopping the frame engine 2) Modify the register settings for LRO relinquishments 3) Jump out from the waiting loop while LRO relinquishments are done ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/mediatek/mtk_eth_soc.c2
-rw-r--r--drivers/net/ethernet/mediatek/mtk_eth_soc.h4
2 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 4cc50c03c12b..ddf20a00654e 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -1374,6 +1374,7 @@ static void mtk_hwlro_rx_uninit(struct mtk_eth *eth)
msleep(20);
continue;
}
+ break;
}
/* invalidate lro rings */
@@ -1784,6 +1785,7 @@ static int mtk_stop(struct net_device *dev)
napi_disable(&eth->rx_napi);
mtk_stop_dma(eth, MTK_QDMA_GLO_CFG);
+ mtk_stop_dma(eth, MTK_PDMA_GLO_CFG);
mtk_dma_free(eth);
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.h b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
index 7e194f795c9a..30031959d6de 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
@@ -102,8 +102,8 @@
#define MTK_LRO_EN BIT(0)
#define MTK_L3_CKS_UPD_EN BIT(7)
#define MTK_LRO_ALT_PKT_CNT_MODE BIT(21)
-#define MTK_LRO_RING_RELINQUISH_REQ (0x3 << 26)
-#define MTK_LRO_RING_RELINQUISH_DONE (0x3 << 29)
+#define MTK_LRO_RING_RELINQUISH_REQ (0x7 << 26)
+#define MTK_LRO_RING_RELINQUISH_DONE (0x7 << 29)
#define MTK_PDMA_LRO_CTRL_DW1 0x984
#define MTK_PDMA_LRO_CTRL_DW2 0x988
OpenPOWER on IntegriCloud