summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/mediatek
diff options
context:
space:
mode:
authorNelson Chang <nelson.chang@mediatek.com>2016-09-26 09:33:50 +0300
committerDavid S. Miller <davem@davemloft.net>2016-09-27 16:41:31 +0300
commitca3ba106a9979dd21988cec296462b4f49b37ace (patch)
tree77f5993f8b19f1ed6c119964eed79ba5245d1e6c /drivers/net/ethernet/mediatek
parent6bf563d50af2de34024bde0de1733d4028f9400c (diff)
downloadlinux-ca3ba106a9979dd21988cec296462b4f49b37ace.tar.xz
net: ethernet: mediatek: bug fix to disable HW LRO
(1) Modify the register settings for LRO relinquishments (2) Jump out from the waiting loop while LRO relinquishments are done Signed-off-by: Nelson Chang <nelson.chang@mediatek.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mediatek')
-rw-r--r--drivers/net/ethernet/mediatek/mtk_eth_soc.c1
-rw-r--r--drivers/net/ethernet/mediatek/mtk_eth_soc.h4
2 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 62de68dac036..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 */
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