ath9k: Cancel pll_work while disabling radio.
authorVivek Natarajan <vnatarajan@atheros.com>
Fri, 25 Feb 2011 12:01:02 +0000 (17:31 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 25 Feb 2011 20:33:39 +0000 (15:33 -0500)
pll_work should be cancelled on full_sleep or it may cause
redundant chip reset.

Signed-off-by: Vivek Natarajan <vnatarajan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/main.c

index 39a72ae8097063e20b5850cb1c88e7afca675259..b8496696460e11109566554369bbac50a768df25 100644 (file)
@@ -910,6 +910,8 @@ void ath_radio_enable(struct ath_softc *sc, struct ieee80211_hw *hw)
        ath9k_hw_set_gpio(ah, ah->led_pin, 0);
 
        ieee80211_wake_queues(hw);
+       ieee80211_queue_delayed_work(hw, &sc->hw_pll_work, HZ/2);
+
 out:
        spin_unlock_bh(&sc->sc_pcu_lock);
 
@@ -923,6 +925,8 @@ void ath_radio_disable(struct ath_softc *sc, struct ieee80211_hw *hw)
        int r;
 
        ath9k_ps_wakeup(sc);
+       cancel_delayed_work_sync(&sc->hw_pll_work);
+
        spin_lock_bh(&sc->sc_pcu_lock);
 
        ieee80211_stop_queues(hw);