2016-04-29 11:34:31 +00:00
|
|
|
From 2675e2a40d78c55fc2d578ec71cc990170cacc42 Mon Sep 17 00:00:00 2001
|
2016-04-26 11:43:38 +00:00
|
|
|
From: John Crispin <blogic@openwrt.org>
|
|
|
|
Date: Thu, 7 Apr 2016 17:36:23 +0200
|
2016-04-29 11:34:31 +00:00
|
|
|
Subject: [PATCH 77/91] net: mediatek: do not set the QID field in the TX DMA
|
2016-04-26 11:43:38 +00:00
|
|
|
descriptors
|
|
|
|
|
|
|
|
The QID field gets set to the mac id. This made the DMA linked list queue
|
|
|
|
the traffic of each MAC on a different internal queue. However during long
|
|
|
|
term testing we found that this will cause traffic stalls as the multi
|
|
|
|
queue setup requires a more complete initialisation which is not part of
|
|
|
|
the upstream driver yet.
|
|
|
|
|
|
|
|
This patch removes the code setting the QID field, resulting in all
|
|
|
|
traffic ending up in queue 0 which works without any special setup.
|
|
|
|
|
|
|
|
Signed-off-by: John Crispin <blogic@openwrt.org>
|
|
|
|
---
|
|
|
|
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 3 +--
|
|
|
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
|
|
|
|
|
|
|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
|
|
|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
2016-05-08 19:57:27 +00:00
|
|
|
@@ -603,8 +603,7 @@ static int mtk_tx_map(struct sk_buff *sk
|
2016-04-26 11:43:38 +00:00
|
|
|
WRITE_ONCE(txd->txd1, mapped_addr);
|
|
|
|
WRITE_ONCE(txd->txd3, (TX_DMA_SWC |
|
|
|
|
TX_DMA_PLEN0(frag_map_size) |
|
|
|
|
- last_frag * TX_DMA_LS0) |
|
|
|
|
- mac->id);
|
|
|
|
+ last_frag * TX_DMA_LS0));
|
|
|
|
WRITE_ONCE(txd->txd4, 0);
|
|
|
|
|
|
|
|
tx_buf->skb = (struct sk_buff *)MTK_DMA_DUMMY_DESC;
|