summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/stmicro
diff options
context:
space:
mode:
authorOng Boon Leong <boon.leong.ong@intel.com>2021-11-24 12:40:19 +0100
committerJakub Kicinski <kuba@kernel.org>2021-11-26 04:27:13 +0100
commit61da6ac715700bcfeef50d187e15c6cc7c9d079b (patch)
tree8417252f4bd5e295278acf8bff14d3b68d01754c /drivers/net/ethernet/stmicro
parenttsnep: Add missing of_node_put() in tsnep_mdio_init() (diff)
downloadlinux-61da6ac715700bcfeef50d187e15c6cc7c9d079b.tar.xz
linux-61da6ac715700bcfeef50d187e15c6cc7c9d079b.zip
net: stmmac: perserve TX and RX coalesce value during XDP setup
When XDP program is loaded, it is desirable that the previous TX and RX coalesce values are not re-inited to its default value. This prevents unnecessary re-configurig the coalesce values that were working fine before. Fixes: ac746c8520d9 ("net: stmmac: enhance XDP ZC driver level switching performance") Signed-off-by: Ong Boon Leong <boon.leong.ong@intel.com> Tested-by: Kurt Kanzenbach <kurt@linutronix.de> Link: https://lore.kernel.org/r/20211124114019.3949125-1-boon.leong.ong@intel.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/ethernet/stmicro')
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/stmmac_main.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 340076b5bb38..6d86b14c285f 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -6519,6 +6519,9 @@ int stmmac_xdp_open(struct net_device *dev)
tx_q->tx_tail_addr = tx_q->dma_tx_phy;
stmmac_set_tx_tail_ptr(priv, priv->ioaddr,
tx_q->tx_tail_addr, chan);
+
+ hrtimer_init(&tx_q->txtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
+ tx_q->txtimer.function = stmmac_tx_timer;
}
/* Enable the MAC Rx/Tx */
@@ -6527,8 +6530,6 @@ int stmmac_xdp_open(struct net_device *dev)
/* Start Rx & Tx DMA Channels */
stmmac_start_all_dma(priv);
- stmmac_init_coalesce(priv);
-
ret = stmmac_request_irq(dev);
if (ret)
goto irq_error;