mediatek: update patches
[openwrt.git] / target / linux / mediatek / patches-4.4 / 0091-net-next-mediatek-remove-BQL.patch
diff --git a/target/linux/mediatek/patches-4.4/0091-net-next-mediatek-remove-BQL.patch b/target/linux/mediatek/patches-4.4/0091-net-next-mediatek-remove-BQL.patch
new file mode 100644 (file)
index 0000000..324d253
--- /dev/null
@@ -0,0 +1,57 @@
+From 1e1f2c5ea2af34017a398ab11cffac142adea87e Mon Sep 17 00:00:00 2001
+From: John Crispin <blogic@openwrt.org>
+Date: Sat, 23 Apr 2016 12:57:21 +0200
+Subject: [PATCH 91/91] net-next: mediatek: remove BQL
+
+Signed-off-by: John Crispin <blogic@openwrt.org>
+---
+ drivers/net/ethernet/mediatek/mtk_eth_soc.c |   19 -------------------
+ 1 file changed, 19 deletions(-)
+
+diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+index b466f45..68f39ed 100644
+--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
++++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+@@ -653,15 +653,6 @@ static int mtk_tx_map(struct sk_buff *skb, struct net_device *dev,
+       WRITE_ONCE(itxd->txd3, (TX_DMA_SWC | TX_DMA_PLEN0(skb_headlen(skb)) |
+                               (!nr_frags * TX_DMA_LS0)));
+-      /* we have a single DMA ring so BQL needs to be updated for all devices
+-       * sitting on this ring
+-       */
+-      for (i = 0; i < MTK_MAC_COUNT; i++) {
+-              if (!eth->netdev[i])
+-                      continue;
+-              netdev_sent_queue(dev, skb->len);
+-      }
+-
+       skb_tx_timestamp(skb);
+       ring->next_free = mtk_qdma_phys_to_virt(ring, txd->txd2);
+@@ -894,7 +885,6 @@ static int mtk_poll_tx(struct mtk_eth *eth, int budget)
+       unsigned int bytes = 0, done = 0;
+       u32 cpu, dma;
+       static int condition;
+-      int i;
+       cpu = mtk_r32(eth, MTK_QTX_CRX_PTR);
+       dma = mtk_r32(eth, MTK_QTX_DRX_PTR);
+@@ -935,15 +925,6 @@ static int mtk_poll_tx(struct mtk_eth *eth, int budget)
+       mtk_w32(eth, cpu, MTK_QTX_CRX_PTR);
+-      /* we have a single DMA ring so BQL needs to be updated for all devices
+-       * sitting on this ring
+-       */
+-      for (i = 0; i < MTK_MAC_COUNT; i++) {
+-              if (!eth->netdev[i])
+-                      continue;
+-              netdev_completed_queue(eth->netdev[i], done, bytes);
+-      }
+-
+       /* read hw index again make sure no new tx packet */
+       if (cpu == dma && cpu == mtk_r32(eth, MTK_QTX_DRX_PTR))
+               mtk_w32(eth, MTK_TX_DONE_INT, MTK_QMTK_INT_STATUS);
+-- 
+1.7.10.4
+