|
@@ -362,6 +362,13 @@ void ath9k_tasklet(unsigned long data)
|
|
|
type = RESET_TYPE_BB_WATCHDOG;
|
|
|
|
|
|
ath9k_queue_reset(sc, type);
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Increment the ref. counter here so that
|
|
|
+ * interrupts are enabled in the reset routine.
|
|
|
+ */
|
|
|
+ atomic_inc(&ah->intr_ref_cnt);
|
|
|
+ ath_dbg(common, ANY, "FATAL: Skipping interrupts\n");
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
@@ -400,10 +407,9 @@ void ath9k_tasklet(unsigned long data)
|
|
|
|
|
|
ath9k_btcoex_handle_interrupt(sc, status);
|
|
|
|
|
|
-out:
|
|
|
/* re-enable hardware interrupt */
|
|
|
ath9k_hw_enable_interrupts(ah);
|
|
|
-
|
|
|
+out:
|
|
|
spin_unlock(&sc->sc_pcu_lock);
|
|
|
ath9k_ps_restore(sc);
|
|
|
}
|