2012-07-03 15:48:55

by Mohammed Shafi Shajakhan

[permalink] [raw]
Subject: [RFC] ath9k: Stop the BT timers before disabling BT

From: Mohammed Shafi Shajakhan <[email protected]>

Stop the BT timers 'period_timer' and 'no_stomp_timer'.
Both these timers can change the BT stomp type especially
for AR9462 chipsets eventhough we had called ath9k_hw_btcoex_disable.
ath9k_hw_btcoex_disable->ath9k_hw_btcoex_bt_stomp(ah,
ATH_BTCOEX_STOMP_NONE). Will do some more analysis before sending
at as a patch.

Cc: Rajkumar Manoharan <[email protected]>
Cc: Bala Shanmugam <[email protected]>
Signed-off-by: Mohammed Shafi Shajakhan <[email protected]>
---
drivers/net/wireless/ath/ath9k/gpio.c | 2 +-
drivers/net/wireless/ath/ath9k/mci.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/gpio.c b/drivers/net/wireless/ath/ath9k/gpio.c
index 5eac4d1..b224e1f 100644
--- a/drivers/net/wireless/ath/ath9k/gpio.c
+++ b/drivers/net/wireless/ath/ath9k/gpio.c
@@ -377,9 +377,9 @@ void ath9k_stop_btcoex(struct ath_softc *sc)

if (ah->btcoex_hw.enabled &&
ath9k_hw_get_btcoex_scheme(ah) != ATH_BTCOEX_CFG_NONE) {
- ath9k_hw_btcoex_disable(ah);
if (ath9k_hw_get_btcoex_scheme(ah) == ATH_BTCOEX_CFG_3WIRE)
ath9k_btcoex_timer_pause(sc);
+ ath9k_hw_btcoex_disable(ah);
if (AR_SREV_9462(ah))
ath_mci_flush_profile(&sc->btcoex.mci);
}
diff --git a/drivers/net/wireless/ath/ath9k/mci.c b/drivers/net/wireless/ath/ath9k/mci.c
index 64cc782..87acff7 100644
--- a/drivers/net/wireless/ath/ath9k/mci.c
+++ b/drivers/net/wireless/ath/ath9k/mci.c
@@ -174,8 +174,8 @@ skip_tuning:
btcoex->btcoex_period >>= 1;
}

- ath9k_hw_btcoex_disable(sc->sc_ah);
ath9k_btcoex_timer_pause(sc);
+ ath9k_hw_btcoex_disable(sc->sc_ah);

if (IS_CHAN_5GHZ(sc->sc_ah->curchan))
return;
--
1.7.0.4