aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath
diff options
context:
space:
mode:
authorNick Kossifidis <mickflemm@gmail.com>2010-12-02 23:07:13 -0500
committerJohn W. Linville <linville@tuxdriver.com>2010-12-06 16:01:27 -0500
commit344b54b971bc5578281264fb6896e13b4120352b (patch)
treecb825aab804c6dcfc30345b58de129b6f71d0fa8 /drivers/net/wireless/ath
parent19252ecb672d3f35959c576d1d26b9aca350f5bf (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.c10
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;