ath9k: Fix baseband watchdog reset
Do a HW reset only for required signatures. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
d88527d3d3
commit
6549a8606d
|
@ -448,14 +448,8 @@ void ath9k_tasklet(unsigned long data)
|
|||
ath9k_ps_wakeup(sc);
|
||||
spin_lock(&sc->sc_pcu_lock);
|
||||
|
||||
if ((status & ATH9K_INT_FATAL) ||
|
||||
(status & ATH9K_INT_BB_WATCHDOG)) {
|
||||
|
||||
if (status & ATH9K_INT_FATAL)
|
||||
type = RESET_TYPE_FATAL_INT;
|
||||
else
|
||||
type = RESET_TYPE_BB_WATCHDOG;
|
||||
|
||||
if (status & ATH9K_INT_FATAL) {
|
||||
type = RESET_TYPE_FATAL_INT;
|
||||
ath9k_queue_reset(sc, type);
|
||||
|
||||
/*
|
||||
|
@ -467,6 +461,23 @@ void ath9k_tasklet(unsigned long data)
|
|||
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);
|
||||
if ((status & ATH9K_INT_TSFOOR) && sc->ps_enabled) {
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue