diff options
author | Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com> | 2012-09-14 09:13:58 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-09-24 14:59:10 -0400 |
commit | 5418b0f0ad389989037d5ed700bcd8b67dbdf018 (patch) | |
tree | f2fd38c49aad6a31da18d1dad4646313c098c3be | |
parent | 97ed15c7ebfb95f0d23b023fffd23608205f7946 (diff) |
ath9k: update hw_timer_enabled to false when we stop generic timers
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>
-rw-r--r-- | drivers/net/wireless/ath/ath9k/gpio.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/net/wireless/ath/ath9k/gpio.c b/drivers/net/wireless/ath/ath9k/gpio.c index 1934cca8a6cc..bf7d29ec1a87 100644 --- a/drivers/net/wireless/ath/ath9k/gpio.c +++ b/drivers/net/wireless/ath/ath9k/gpio.c | |||
@@ -320,8 +320,10 @@ void ath9k_btcoex_timer_resume(struct ath_softc *sc) | |||
320 | ath_dbg(ath9k_hw_common(ah), BTCOEX, "Starting btcoex timers\n"); | 320 | ath_dbg(ath9k_hw_common(ah), BTCOEX, "Starting btcoex timers\n"); |
321 | 321 | ||
322 | /* make sure duty cycle timer is also stopped when resuming */ | 322 | /* make sure duty cycle timer is also stopped when resuming */ |
323 | if (btcoex->hw_timer_enabled) | 323 | if (btcoex->hw_timer_enabled) { |
324 | ath9k_gen_timer_stop(sc->sc_ah, btcoex->no_stomp_timer); | 324 | ath9k_gen_timer_stop(sc->sc_ah, btcoex->no_stomp_timer); |
325 | btcoex->hw_timer_enabled = false; | ||
326 | } | ||
325 | 327 | ||
326 | btcoex->bt_priority_cnt = 0; | 328 | btcoex->bt_priority_cnt = 0; |
327 | btcoex->bt_priority_time = jiffies; | 329 | btcoex->bt_priority_time = jiffies; |
@@ -342,18 +344,20 @@ void ath9k_btcoex_timer_pause(struct ath_softc *sc) | |||
342 | 344 | ||
343 | del_timer_sync(&btcoex->period_timer); | 345 | del_timer_sync(&btcoex->period_timer); |
344 | 346 | ||
345 | if (btcoex->hw_timer_enabled) | 347 | if (btcoex->hw_timer_enabled) { |
346 | ath9k_gen_timer_stop(ah, btcoex->no_stomp_timer); | 348 | ath9k_gen_timer_stop(ah, btcoex->no_stomp_timer); |
347 | 349 | btcoex->hw_timer_enabled = false; | |
348 | btcoex->hw_timer_enabled = false; | 350 | } |
349 | } | 351 | } |
350 | 352 | ||
351 | void ath9k_btcoex_stop_gen_timer(struct ath_softc *sc) | 353 | void ath9k_btcoex_stop_gen_timer(struct ath_softc *sc) |
352 | { | 354 | { |
353 | struct ath_btcoex *btcoex = &sc->btcoex; | 355 | struct ath_btcoex *btcoex = &sc->btcoex; |
354 | 356 | ||
355 | if (btcoex->hw_timer_enabled) | 357 | if (btcoex->hw_timer_enabled) { |
356 | ath9k_gen_timer_stop(sc->sc_ah, btcoex->no_stomp_timer); | 358 | ath9k_gen_timer_stop(sc->sc_ah, btcoex->no_stomp_timer); |
359 | btcoex->hw_timer_enabled = false; | ||
360 | } | ||
357 | } | 361 | } |
358 | 362 | ||
359 | u16 ath9k_btcoex_aggr_limit(struct ath_softc *sc, u32 max_4ms_framelen) | 363 | u16 ath9k_btcoex_aggr_limit(struct ath_softc *sc, u32 max_4ms_framelen) |