Commit 6549a860 authored by Sujith Manoharan's avatar Sujith Manoharan Committed by John W. Linville

ath9k: Fix baseband watchdog reset

Do a HW reset only for required signatures.
Signed-off-by: default avatarSujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent d88527d3
...@@ -448,14 +448,8 @@ void ath9k_tasklet(unsigned long data) ...@@ -448,14 +448,8 @@ void ath9k_tasklet(unsigned long data)
ath9k_ps_wakeup(sc); ath9k_ps_wakeup(sc);
spin_lock(&sc->sc_pcu_lock); spin_lock(&sc->sc_pcu_lock);
if ((status & ATH9K_INT_FATAL) || if (status & ATH9K_INT_FATAL) {
(status & ATH9K_INT_BB_WATCHDOG)) { type = RESET_TYPE_FATAL_INT;
if (status & ATH9K_INT_FATAL)
type = RESET_TYPE_FATAL_INT;
else
type = RESET_TYPE_BB_WATCHDOG;
ath9k_queue_reset(sc, type); ath9k_queue_reset(sc, type);
/* /*
...@@ -467,6 +461,23 @@ void ath9k_tasklet(unsigned long data) ...@@ -467,6 +461,23 @@ void ath9k_tasklet(unsigned long data)
goto out; goto out;
} }
if ((ah->config.hw_hang_checks & HW_BB_WATCHDOG) &&
(status & ATH9K_INT_BB_WATCHDOG)) {
if (ar9003_hw_bb_watchdog_check(ah)) {
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,
"BB_WATCHDOG: Skipping interrupts\n");
goto out;
}
}
spin_lock_irqsave(&sc->sc_pm_lock, flags); spin_lock_irqsave(&sc->sc_pm_lock, flags);
if ((status & ATH9K_INT_TSFOOR) && sc->ps_enabled) { if ((status & ATH9K_INT_TSFOOR) && sc->ps_enabled) {
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment