summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRajkumar Manoharan <rmanohar@qca.qualcomm.com>2011-06-28 14:51:19 +0200
committerJohn W. Linville <linville@tuxdriver.com>2011-06-29 20:36:44 +0200
commitc31eb8e926835582cd186b33a7a864880a4c0c79 (patch)
treee420418ad30c4e8631e3c96c2bf0dc8fa69b0742
parentiwlagn: use PCI_DMA_* for pci_* operations (diff)
downloadlinux-c31eb8e926835582cd186b33a7a864880a4c0c79.tar.xz
linux-c31eb8e926835582cd186b33a7a864880a4c0c79.zip
ath9k: Fix suspend/resume when no interface is UP
When no interface has been brought up, the chip's power state continued as AWAKE. So during resume, the chip never been powered up. Cc: stable@kernel.org Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/ath/ath9k/pci.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/pci.c b/drivers/net/wireless/ath/ath9k/pci.c
index b8cbfc707213..3bad0b2cf9a3 100644
--- a/drivers/net/wireless/ath/ath9k/pci.c
+++ b/drivers/net/wireless/ath/ath9k/pci.c
@@ -278,6 +278,12 @@ static int ath_pci_suspend(struct device *device)
ath9k_hw_set_gpio(sc->sc_ah, sc->sc_ah->led_pin, 1);
+ /* The device has to be moved to FULLSLEEP forcibly.
+ * Otherwise the chip never moved to full sleep,
+ * when no interface is up.
+ */
+ ath9k_hw_setpower(sc->sc_ah, ATH9K_PM_FULL_SLEEP);
+
return 0;
}