diff options
author | Nick Kossifidis <mickflemm@gmail.com> | 2010-12-02 23:07:13 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-12-06 16:01:27 -0500 |
commit | 344b54b971bc5578281264fb6896e13b4120352b (patch) | |
tree | cb825aab804c6dcfc30345b58de129b6f71d0fa8 /drivers/net/wireless/ath | |
parent | 19252ecb672d3f35959c576d1d26b9aca350f5bf (diff) |
ath5k: Disable ANI during reset
* Stop ANI durring reset to prevent false PHY error reports
Signed-off-by: Nick Kossifidis <mickflemm@gmail.com>
Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath')
-rw-r--r-- | drivers/net/wireless/ath/ath5k/base.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c index 1522cf82c16..0592773ed81 100644 --- a/drivers/net/wireless/ath/ath5k/base.c +++ b/drivers/net/wireless/ath/ath5k/base.c | |||
@@ -2653,7 +2653,7 @@ ath5k_reset(struct ath5k_softc *sc, struct ieee80211_channel *chan, | |||
2653 | bool skip_pcu) | 2653 | bool skip_pcu) |
2654 | { | 2654 | { |
2655 | struct ath5k_hw *ah = sc->ah; | 2655 | struct ath5k_hw *ah = sc->ah; |
2656 | int ret; | 2656 | int ret, ani_mode; |
2657 | 2657 | ||
2658 | ATH5K_DBG(sc, ATH5K_DEBUG_RESET, "resetting\n"); | 2658 | ATH5K_DBG(sc, ATH5K_DEBUG_RESET, "resetting\n"); |
2659 | 2659 | ||
@@ -2661,6 +2661,12 @@ ath5k_reset(struct ath5k_softc *sc, struct ieee80211_channel *chan, | |||
2661 | synchronize_irq(sc->irq); | 2661 | synchronize_irq(sc->irq); |
2662 | stop_tasklets(sc); | 2662 | stop_tasklets(sc); |
2663 | 2663 | ||
2664 | /* Save ani mode and disable ANI durring | ||
2665 | * reset. If we don't we might get false | ||
2666 | * PHY error interrupts. */ | ||
2667 | ani_mode = ah->ah_sc->ani_state.ani_mode; | ||
2668 | ath5k_ani_init(ah, ATH5K_ANI_MODE_OFF); | ||
2669 | |||
2664 | /* We are going to empty hw queues | 2670 | /* We are going to empty hw queues |
2665 | * so we should also free any remaining | 2671 | * so we should also free any remaining |
2666 | * tx buffers */ | 2672 | * tx buffers */ |
@@ -2682,7 +2688,7 @@ ath5k_reset(struct ath5k_softc *sc, struct ieee80211_channel *chan, | |||
2682 | goto err; | 2688 | goto err; |
2683 | } | 2689 | } |
2684 | 2690 | ||
2685 | ath5k_ani_init(ah, ah->ah_sc->ani_state.ani_mode); | 2691 | ath5k_ani_init(ah, ani_mode); |
2686 | 2692 | ||
2687 | ah->ah_cal_next_full = jiffies; | 2693 | ah->ah_cal_next_full = jiffies; |
2688 | ah->ah_cal_next_ani = jiffies; | 2694 | ah->ah_cal_next_ani = jiffies; |