ath9k: Handle ASPM properly for RFKILL

Radio enable/disable have to handle ASPM state properly.
This patch fixes it.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Sujith 2009-04-13 21:56:25 +05:30 committed by John W. Linville
parent a89bff9a78
commit d2f5b3a677
1 changed files with 3 additions and 2 deletions

View File

@ -1089,10 +1089,10 @@ void ath_radio_enable(struct ath_softc *sc)
int r; int r;
ath9k_ps_wakeup(sc); ath9k_ps_wakeup(sc);
ath9k_hw_configpcipowersave(ah, 0);
spin_lock_bh(&sc->sc_resetlock); spin_lock_bh(&sc->sc_resetlock);
r = ath9k_hw_reset(ah, ah->curchan, false); r = ath9k_hw_reset(ah, ah->curchan, false);
if (r) { if (r) {
DPRINTF(sc, ATH_DBG_FATAL, DPRINTF(sc, ATH_DBG_FATAL,
"Unable to reset channel %u (%uMhz) ", "Unable to reset channel %u (%uMhz) ",
@ -1154,6 +1154,7 @@ void ath_radio_disable(struct ath_softc *sc)
spin_unlock_bh(&sc->sc_resetlock); spin_unlock_bh(&sc->sc_resetlock);
ath9k_hw_phy_disable(ah); ath9k_hw_phy_disable(ah);
ath9k_hw_configpcipowersave(ah, 1);
ath9k_hw_setpower(ah, ATH9K_PM_FULL_SLEEP); ath9k_hw_setpower(ah, ATH9K_PM_FULL_SLEEP);
ath9k_ps_restore(sc); ath9k_ps_restore(sc);
} }