OSDN Git Service

ath9k: update hw_timer_enabled to false when we stop generic timers
authorMohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Fri, 14 Sep 2012 13:13:58 +0000 (18:43 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 24 Sep 2012 18:59:10 +0000 (14:59 -0400)
Update the 'hw_timer_enabled' to 'false' wherever we are stopping
hardware generic timers, excecpt the case where we start them
again immediately.

Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/gpio.c

index 1934cca..bf7d29e 100644 (file)
@@ -320,8 +320,10 @@ void ath9k_btcoex_timer_resume(struct ath_softc *sc)
        ath_dbg(ath9k_hw_common(ah), BTCOEX, "Starting btcoex timers\n");
 
        /* make sure duty cycle timer is also stopped when resuming */
-       if (btcoex->hw_timer_enabled)
+       if (btcoex->hw_timer_enabled) {
                ath9k_gen_timer_stop(sc->sc_ah, btcoex->no_stomp_timer);
+               btcoex->hw_timer_enabled = false;
+       }
 
        btcoex->bt_priority_cnt = 0;
        btcoex->bt_priority_time = jiffies;
@@ -342,18 +344,20 @@ void ath9k_btcoex_timer_pause(struct ath_softc *sc)
 
        del_timer_sync(&btcoex->period_timer);
 
-       if (btcoex->hw_timer_enabled)
+       if (btcoex->hw_timer_enabled) {
                ath9k_gen_timer_stop(ah, btcoex->no_stomp_timer);
-
-       btcoex->hw_timer_enabled = false;
+               btcoex->hw_timer_enabled = false;
+       }
 }
 
 void ath9k_btcoex_stop_gen_timer(struct ath_softc *sc)
 {
        struct ath_btcoex *btcoex = &sc->btcoex;
 
-       if (btcoex->hw_timer_enabled)
+       if (btcoex->hw_timer_enabled) {
                ath9k_gen_timer_stop(sc->sc_ah, btcoex->no_stomp_timer);
+               btcoex->hw_timer_enabled = false;
+       }
 }
 
 u16 ath9k_btcoex_aggr_limit(struct ath_softc *sc, u32 max_4ms_framelen)