Commit 0c759977 authored by Sujith Manoharan's avatar Sujith Manoharan Committed by John W. Linville

ath9k: Process BB watchdog events in the tasklet

Move the BB processing code to the tasklet and avoid
doing it in the ISR, there is no real benefit and this
makes the ISR less heavy.
Signed-off-by: default avatarSujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 415ec61b
...@@ -457,6 +457,11 @@ void ath9k_tasklet(unsigned long data) ...@@ -457,6 +457,11 @@ void ath9k_tasklet(unsigned long data)
if ((ah->config.hw_hang_checks & HW_BB_WATCHDOG) && if ((ah->config.hw_hang_checks & HW_BB_WATCHDOG) &&
(status & ATH9K_INT_BB_WATCHDOG)) { (status & ATH9K_INT_BB_WATCHDOG)) {
spin_lock(&common->cc_lock);
ath_hw_cycle_counters_update(common);
ar9003_hw_bb_watchdog_dbg_info(ah);
spin_unlock(&common->cc_lock);
if (ar9003_hw_bb_watchdog_check(ah)) { if (ar9003_hw_bb_watchdog_check(ah)) {
type = RESET_TYPE_BB_WATCHDOG; type = RESET_TYPE_BB_WATCHDOG;
ath9k_queue_reset(sc, type); ath9k_queue_reset(sc, type);
...@@ -593,15 +598,8 @@ irqreturn_t ath_isr(int irq, void *dev) ...@@ -593,15 +598,8 @@ irqreturn_t ath_isr(int irq, void *dev)
goto chip_reset; goto chip_reset;
if ((ah->config.hw_hang_checks & HW_BB_WATCHDOG) && if ((ah->config.hw_hang_checks & HW_BB_WATCHDOG) &&
(status & ATH9K_INT_BB_WATCHDOG)) { (status & ATH9K_INT_BB_WATCHDOG))
spin_lock(&common->cc_lock);
ath_hw_cycle_counters_update(common);
ar9003_hw_bb_watchdog_dbg_info(ah);
spin_unlock(&common->cc_lock);
goto chip_reset; goto chip_reset;
}
#ifdef CONFIG_ATH9K_WOW #ifdef CONFIG_ATH9K_WOW
if (status & ATH9K_INT_BMISS) { if (status & ATH9K_INT_BMISS) {
......
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