]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: mwifiex: Use IRQF_NO_AUTOEN flag in request_irq()
authorJinjie Ruan <ruanjinjie@huawei.com>
Tue, 10 Sep 2024 12:43:13 +0000 (20:43 +0800)
committerKalle Valo <kvalo@kernel.org>
Wed, 18 Sep 2024 13:54:30 +0000 (16:54 +0300)
disable_irq() after request_irq() still has a time gap in which
interrupts can come. request_irq() with IRQF_NO_AUTOEN flag will
disable IRQ auto-enable when request IRQ.

Fixes: 853402a00823 ("mwifiex: Enable WoWLAN for both sdio and pcie")
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Acked-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://patch.msgid.link/20240910124314.698896-3-ruanjinjie@huawei.com
drivers/net/wireless/marvell/mwifiex/main.c

index 96d1f6039fbca3f2cc610d9ebf472f72e512a2d3..855019fe5485821b5d50bf0e96e8399956b07baf 100644 (file)
@@ -1679,7 +1679,8 @@ static void mwifiex_probe_of(struct mwifiex_adapter *adapter)
        }
 
        ret = devm_request_irq(dev, adapter->irq_wakeup,
-                              mwifiex_irq_wakeup_handler, IRQF_TRIGGER_LOW,
+                              mwifiex_irq_wakeup_handler,
+                              IRQF_TRIGGER_LOW | IRQF_NO_AUTOEN,
                               "wifi_wake", adapter);
        if (ret) {
                dev_err(dev, "Failed to request irq_wakeup %d (%d)\n",
@@ -1687,7 +1688,6 @@ static void mwifiex_probe_of(struct mwifiex_adapter *adapter)
                goto err_exit;
        }
 
-       disable_irq(adapter->irq_wakeup);
        if (device_init_wakeup(dev, true)) {
                dev_err(dev, "fail to init wakeup for mwifiex\n");
                goto err_exit;