]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: airoha: npu: Read NPU wlan interrupt lines from the DTS
authorLorenzo Bianconi <lorenzo@kernel.org>
Mon, 11 Aug 2025 15:31:40 +0000 (17:31 +0200)
committerJakub Kicinski <kuba@kernel.org>
Wed, 13 Aug 2025 01:58:32 +0000 (18:58 -0700)
Read all NPU wlan IRQ lines from the NPU device-tree node.
NPU module fires wlan irq lines when the traffic to/from the WiFi NIC is
not hw accelerated (these interrupts will be consumed by the MT76 driver
in subsequent patches).
This is a preliminary patch to enable wlan flowtable offload for EN7581
SoC.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://patch.msgid.link/20250811-airoha-en7581-wlan-offlaod-v7-5-58823603bb4e@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/airoha/airoha_npu.c
drivers/net/ethernet/airoha/airoha_npu.h

index 5d1355126d16d44e5bc1e0e53df7f378b904ff97..e0448e1225b8eb6b66a3a279b676592876f277ae 100644 (file)
@@ -690,6 +690,15 @@ static int airoha_npu_probe(struct platform_device *pdev)
                INIT_WORK(&core->wdt_work, airoha_npu_wdt_work);
        }
 
+       /* wlan IRQ lines */
+       for (i = 0; i < ARRAY_SIZE(npu->irqs); i++) {
+               irq = platform_get_irq(pdev, i + ARRAY_SIZE(npu->cores) + 1);
+               if (irq < 0)
+                       return irq;
+
+               npu->irqs[i] = irq;
+       }
+
        err = dma_set_coherent_mask(dev, DMA_BIT_MASK(32));
        if (err)
                return err;
index 84c83753c2bd8c6a30626377b90169ccffa90a07..a448c74208a9e99116009606e039134aa0aae251 100644 (file)
@@ -5,6 +5,7 @@
  */
 
 #define NPU_NUM_CORES          8
+#define NPU_NUM_IRQ            6
 
 enum airoha_npu_wlan_set_cmd {
        WLAN_FUNC_SET_WAIT_PCIE_ADDR,
@@ -68,6 +69,8 @@ struct airoha_npu {
                struct work_struct wdt_work;
        } cores[NPU_NUM_CORES];
 
+       int irqs[NPU_NUM_IRQ];
+
        struct airoha_foe_stats __iomem *stats;
 
        struct {