Messages in this thread Patch in this message | | | From | Sujith <> | Date | Tue, 22 Dec 2009 10:09:17 +0530 | Subject | Asus eeepc 1008HA suspend issue and mac80211 suspend corner case |
| |
Luis Rodriguez wrote: > That log can be found here: > > http://bombadil.infradead.org/~mcgrof/logs/2.6.31-with-2.6.32-wireless/irq-disabled.txt
Thanks for the log. It's a bug in ath9k, related to PowerSave.
Can you test this patch ?
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c index 3f5b887..419c382 100644 --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c @@ -2504,6 +2504,9 @@ static void ath9k_stop(struct ieee80211_hw *hw) return; /* another wiphy still in use */ } + /* Ensure HW is awake when we try to shut it down. */ + ath9k_ps_wakeup(sc); + if (ah->btcoex_hw.enabled) { ath9k_hw_btcoex_disable(ah); if (ah->btcoex_hw.scheme == ATH_BTCOEX_CFG_3WIRE) @@ -2524,8 +2527,10 @@ static void ath9k_stop(struct ieee80211_hw *hw) /* disable HAL and put h/w to sleep */ ath9k_hw_disable(ah); ath9k_hw_configpcipowersave(ah, 1, 1); - ath9k_setpower(sc, ATH9K_PM_FULL_SLEEP); + ath9k_ps_restore(sc); + /* Finally, put the chip in FULL SLEEP mode */ + ath9k_setpower(sc, ATH9K_PM_FULL_SLEEP); sc->sc_flags |= SC_OP_INVALID; mutex_unlock(&sc->mutex);
| |