From 132545785bbbe50c4403640153b686c3b75b63a8 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Mon, 27 Jun 2022 14:40:43 +0200 Subject: [PATCH] ipq40xx: ipqess: enable threaded NAPI Enable threaded NAPI by default in IPQESS driver as it significantly improves network perfromance, in my testing about 100+ Mbps in WAN-LAN routing. Signed-off-by: Robert Marko --- .../files/drivers/net/ethernet/qualcomm/ipqess/ipqess.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/ipqess/ipqess.c b/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/ipqess/ipqess.c index 7b83950a21b..ee33bb01667 100644 --- a/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/ipqess/ipqess.c +++ b/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/ipqess/ipqess.c @@ -542,10 +542,10 @@ static irqreturn_t ipqess_interrupt_tx(int irq, void *priv) struct ipqess_tx_ring *tx_ring = (struct ipqess_tx_ring *) priv; if (likely(napi_schedule_prep(&tx_ring->napi_tx))) { - __napi_schedule(&tx_ring->napi_tx); ipqess_w32(tx_ring->ess, IPQESS_REG_TX_INT_MASK_Q(tx_ring->idx), 0x0); + __napi_schedule(&tx_ring->napi_tx); } return IRQ_HANDLED; @@ -556,10 +556,10 @@ static irqreturn_t ipqess_interrupt_rx(int irq, void *priv) struct ipqess_rx_ring *rx_ring = (struct ipqess_rx_ring *) priv; if (likely(napi_schedule_prep(&rx_ring->napi_rx))) { - __napi_schedule(&rx_ring->napi_rx); ipqess_w32(rx_ring->ess, IPQESS_REG_RX_INT_MASK_Q(rx_ring->idx), 0x0); + __napi_schedule(&rx_ring->napi_rx); } return IRQ_HANDLED; @@ -1269,6 +1269,8 @@ static int ipqess_axi_probe(struct platform_device *pdev) if (err) goto err_out; + dev_set_threaded(netdev, true); + for (i = 0; i < IPQESS_NETDEV_QUEUES; i++) { int qid;