diff options
author | Sujith Manoharan <c_manoha@qualcomm.com> | 2012-09-11 10:46:24 +0530 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-09-11 15:31:59 -0400 |
commit | b7f597668657c9c9579dbdff9692aea3e8e9bf5a (patch) | |
tree | 90890d35424851250b99b5b8a34544062ed9ef34 | |
parent | 4ac8764ab2290fd83c21b4183ca6a0f279dab277 (diff) | |
download | linux-stable-b7f597668657c9c9579dbdff9692aea3e8e9bf5a.tar.gz linux-stable-b7f597668657c9c9579dbdff9692aea3e8e9bf5a.tar.bz2 linux-stable-b7f597668657c9c9579dbdff9692aea3e8e9bf5a.zip |
ath9k_hw: Handle gentimer termination properly
Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/ath/ath9k/hw.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c index 47de1a92bfe4..99cab44d2312 100644 --- a/drivers/net/wireless/ath/ath9k/hw.c +++ b/drivers/net/wireless/ath/ath9k/hw.c @@ -3084,6 +3084,16 @@ void ath9k_hw_gen_timer_stop(struct ath_hw *ah, struct ath_gen_timer *timer) REG_CLR_BIT(ah, gen_tmr_configuration[timer->index].mode_addr, gen_tmr_configuration[timer->index].mode_mask); + if (AR_SREV_9462(ah) || AR_SREV_9565(ah)) { + /* + * Need to switch back to TSF if it was using TSF2. + */ + if ((timer->index >= AR_GEN_TIMER_BANK_1_LEN)) { + REG_CLR_BIT(ah, AR_MAC_PCU_GEN_TIMER_TSF_SEL, + (1 << timer->index)); + } + } + /* Disable both trigger and thresh interrupt masks */ REG_CLR_BIT(ah, AR_IMR_S5, (SM(AR_GENTMR_BIT(timer->index), AR_IMR_S5_GENTIMER_THRESH) | |