ipq40xx: switch default to 6.6
[openwrt/staging/stintel.git] / target / linux / ipq40xx / patches-6.1 / 704-net-qualcomm-ipqess-enable-threaded-NAPI-by-default.patch
1 From 9fa4a57a65e270e4d579cace4de5c438f46c7d12 Mon Sep 17 00:00:00 2001
2 From: Robert Marko <robimarko@gmail.com>
3 Date: Tue, 15 Aug 2023 14:38:44 +0200
4 Subject: [PATCH] net: qualcomm: ipqess: enable threaded NAPI by default
5
6 Threaded NAPI provides a nice performance boost, so lets enable it by
7 default.
8
9 We do however need to move the __napi_schedule() after HW IRQ has been
10 cleared in order to avoid concurency issues.
11
12 Signed-off-by: Robert Marko <robimarko@gmail.com>
13 ---
14 drivers/net/ethernet/qualcomm/ipqess/ipqess.c | 6 ++++--
15 1 file changed, 4 insertions(+), 2 deletions(-)
16
17 --- a/drivers/net/ethernet/qualcomm/ipqess/ipqess.c
18 +++ b/drivers/net/ethernet/qualcomm/ipqess/ipqess.c
19 @@ -530,9 +530,9 @@ static irqreturn_t ipqess_interrupt_tx(i
20 struct ipqess_tx_ring *tx_ring = (struct ipqess_tx_ring *)priv;
21
22 if (likely(napi_schedule_prep(&tx_ring->napi_tx))) {
23 - __napi_schedule(&tx_ring->napi_tx);
24 ipqess_w32(tx_ring->ess, IPQESS_REG_TX_INT_MASK_Q(tx_ring->idx),
25 0x0);
26 + __napi_schedule(&tx_ring->napi_tx);
27 }
28
29 return IRQ_HANDLED;
30 @@ -543,9 +543,9 @@ static irqreturn_t ipqess_interrupt_rx(i
31 struct ipqess_rx_ring *rx_ring = (struct ipqess_rx_ring *)priv;
32
33 if (likely(napi_schedule_prep(&rx_ring->napi_rx))) {
34 - __napi_schedule(&rx_ring->napi_rx);
35 ipqess_w32(rx_ring->ess, IPQESS_REG_RX_INT_MASK_Q(rx_ring->idx),
36 0x0);
37 + __napi_schedule(&rx_ring->napi_rx);
38 }
39
40 return IRQ_HANDLED;
41 @@ -1261,6 +1261,8 @@ static int ipqess_axi_probe(struct platf
42 if (err)
43 goto err_notifier_unregister;
44
45 + dev_set_threaded(netdev, true);
46 +
47 return 0;
48
49 err_notifier_unregister: