net: mediatek: do not set the QID field in the TX DMA descriptors
authorJohn Crispin <blogic@openwrt.org>
Thu, 7 Apr 2016 22:54:11 +0000 (00:54 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 13 Apr 2016 02:41:33 +0000 (22:41 -0400)
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>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mediatek/mtk_eth_soc.c

index eb0d5544787ada3289821d3c9c2b08ba49d50bdd..c984462fad2a26fa267faab7707181a19c1d1814 100644 (file)
@@ -603,8 +603,7 @@ static int mtk_tx_map(struct sk_buff *skb, struct net_device *dev,
                        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;