]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
wil6210: protect against false interrupt during reset sequence
authorHamad Kadmany <qca_hkadmany@qca.qualcomm.com>
Fri, 20 Jan 2017 11:49:49 +0000 (13:49 +0200)
committerKalle Valo <kvalo@qca.qualcomm.com>
Fri, 27 Jan 2017 17:49:43 +0000 (19:49 +0200)
During reset sequence it is seen that device is generating an
interrupt eventhough interrupts are masked at device level.

Add workaround to disable the interrupts from host side during
reset and clear any pending interrupts before re-enabling
the interrupt.

Signed-off-by: Hamad Kadmany <qca_hkadmany@qca.qualcomm.com>
Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/wil6210/main.c

index 9b8fa6a182ec262be08636c0e0ead8a7d981d458..85a795a878436c388f0c48de87dbef525312364e 100644 (file)
@@ -918,7 +918,10 @@ int wil_reset(struct wil6210_priv *wil, bool load_fw)
        flush_workqueue(wil->wmi_wq);
 
        wil_bl_crash_info(wil, false);
+       wil_disable_irq(wil);
        rc = wil_target_reset(wil);
+       wil6210_clear_irq(wil);
+       wil_enable_irq(wil);
        wil_rx_fini(wil);
        if (rc) {
                wil_bl_crash_info(wil, true);