aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/backport-5.10/610-v5.13-49-net-ethernet-mtk_eth_soc-rework-NAPI-callbacks.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/backport-5.10/610-v5.13-49-net-ethernet-mtk_eth_soc-rework-NAPI-callbacks.patch')
-rw-r--r--target/linux/generic/backport-5.10/610-v5.13-49-net-ethernet-mtk_eth_soc-rework-NAPI-callbacks.patch110
1 files changed, 0 insertions, 110 deletions
diff --git a/target/linux/generic/backport-5.10/610-v5.13-49-net-ethernet-mtk_eth_soc-rework-NAPI-callbacks.patch b/target/linux/generic/backport-5.10/610-v5.13-49-net-ethernet-mtk_eth_soc-rework-NAPI-callbacks.patch
deleted file mode 100644
index 21a3e9bef0..0000000000
--- a/target/linux/generic/backport-5.10/610-v5.13-49-net-ethernet-mtk_eth_soc-rework-NAPI-callbacks.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From db2c7b353db3b3f71b55f9ff4627d8a786446fbe Mon Sep 17 00:00:00 2001
-From: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
-Date: Thu, 22 Apr 2021 22:21:06 -0700
-Subject: [PATCH] net: ethernet: mtk_eth_soc: rework NAPI callbacks
-
-Use napi_complete_done to communicate total TX and RX work done to NAPI.
-Count total RX work up instead of remaining work down for clarity.
-Remove unneeded local variables for clarity. Use do {} while instead of
-goto for clarity.
-
-Suggested-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- drivers/net/ethernet/mediatek/mtk_eth_soc.c | 54 +++++++++------------
- 1 file changed, 24 insertions(+), 30 deletions(-)
-
---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -1532,7 +1532,6 @@ static void mtk_handle_status_irq(struct
- static int mtk_napi_tx(struct napi_struct *napi, int budget)
- {
- struct mtk_eth *eth = container_of(napi, struct mtk_eth, tx_napi);
-- u32 status, mask;
- int tx_done = 0;
-
- if (MTK_HAS_CAPS(eth->soc->caps, MTK_QDMA))
-@@ -1541,21 +1540,19 @@ static int mtk_napi_tx(struct napi_struc
- tx_done = mtk_poll_tx(eth, budget);
-
- if (unlikely(netif_msg_intr(eth))) {
-- status = mtk_r32(eth, eth->tx_int_status_reg);
-- mask = mtk_r32(eth, eth->tx_int_mask_reg);
- dev_info(eth->dev,
-- "done tx %d, intr 0x%08x/0x%x\n",
-- tx_done, status, mask);
-+ "done tx %d, intr 0x%08x/0x%x\n", tx_done,
-+ mtk_r32(eth, eth->tx_int_status_reg),
-+ mtk_r32(eth, eth->tx_int_mask_reg));
- }
-
- if (tx_done == budget)
- return budget;
-
-- status = mtk_r32(eth, eth->tx_int_status_reg);
-- if (status & MTK_TX_DONE_INT)
-+ if (mtk_r32(eth, eth->tx_int_status_reg) & MTK_TX_DONE_INT)
- return budget;
-
-- if (napi_complete(napi))
-+ if (napi_complete_done(napi, tx_done))
- mtk_tx_irq_enable(eth, MTK_TX_DONE_INT);
-
- return tx_done;
-@@ -1564,36 +1561,33 @@ static int mtk_napi_tx(struct napi_struc
- static int mtk_napi_rx(struct napi_struct *napi, int budget)
- {
- struct mtk_eth *eth = container_of(napi, struct mtk_eth, rx_napi);
-- u32 status, mask;
-- int rx_done = 0;
-- int remain_budget = budget;
-+ int rx_done_total = 0;
-
- mtk_handle_status_irq(eth);
-
--poll_again:
-- mtk_w32(eth, MTK_RX_DONE_INT, MTK_PDMA_INT_STATUS);
-- rx_done = mtk_poll_rx(napi, remain_budget, eth);
-+ do {
-+ int rx_done;
-
-- if (unlikely(netif_msg_intr(eth))) {
-- status = mtk_r32(eth, MTK_PDMA_INT_STATUS);
-- mask = mtk_r32(eth, MTK_PDMA_INT_MASK);
-- dev_info(eth->dev,
-- "done rx %d, intr 0x%08x/0x%x\n",
-- rx_done, status, mask);
-- }
-- if (rx_done == remain_budget)
-- return budget;
-+ mtk_w32(eth, MTK_RX_DONE_INT, MTK_PDMA_INT_STATUS);
-+ rx_done = mtk_poll_rx(napi, budget - rx_done_total, eth);
-+ rx_done_total += rx_done;
-+
-+ if (unlikely(netif_msg_intr(eth))) {
-+ dev_info(eth->dev,
-+ "done rx %d, intr 0x%08x/0x%x\n", rx_done,
-+ mtk_r32(eth, MTK_PDMA_INT_STATUS),
-+ mtk_r32(eth, MTK_PDMA_INT_MASK));
-+ }
-
-- status = mtk_r32(eth, MTK_PDMA_INT_STATUS);
-- if (status & MTK_RX_DONE_INT) {
-- remain_budget -= rx_done;
-- goto poll_again;
-- }
-+ if (rx_done_total == budget)
-+ return budget;
-+
-+ } while (mtk_r32(eth, MTK_PDMA_INT_STATUS) & MTK_RX_DONE_INT);
-
-- if (napi_complete(napi))
-+ if (napi_complete_done(napi, rx_done_total))
- mtk_rx_irq_enable(eth, MTK_RX_DONE_INT);
-
-- return rx_done + budget - remain_budget;
-+ return rx_done_total;
- }
-
- static int mtk_tx_alloc(struct mtk_eth *eth)