aboutsummaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorRobert Marko <robert.marko@sartura.hr>2022-06-27 14:40:43 +0200
committerDavid Bauer <mail@david-bauer.net>2022-10-02 23:04:39 +0200
commit132545785bbbe50c4403640153b686c3b75b63a8 (patch)
tree8cc7307e00a5f3039ee9b2a3eb19a15b7cf975b4 /target
parentb9b4c51b2b78ba501cbf47b7d9fc19cf8bcd65ea (diff)
downloadupstream-132545785bbbe50c4403640153b686c3b75b63a8.tar.gz
upstream-132545785bbbe50c4403640153b686c3b75b63a8.tar.bz2
upstream-132545785bbbe50c4403640153b686c3b75b63a8.zip
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 <robert.marko@sartura.hr>
Diffstat (limited to 'target')
-rw-r--r--target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/ipqess/ipqess.c6
1 files 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 7b83950a21..ee33bb0166 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;