summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/hw.c
diff options
context:
space:
mode:
authorVasanthakumar Thiagarajan <vasanth@atheros.com>2010-04-15 17:39:41 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-04-16 15:43:49 -0400
commit9b9cc61c46822ced22bc09d9aaa9f0f1859719cb (patch)
tree851d88bdcb44ef026a69cd72b7457e71104db76b /drivers/net/wireless/ath/ath9k/hw.c
parentafe754d66fbde0a0c07d954d5f1ad36d10136c72 (diff)
downloadlinux-stable-9b9cc61c46822ced22bc09d9aaa9f0f1859719cb.tar.gz
linux-stable-9b9cc61c46822ced22bc09d9aaa9f0f1859719cb.tar.bz2
linux-stable-9b9cc61c46822ced22bc09d9aaa9f0f1859719cb.zip
ath9k_hw: Abort rx if hw is not coming out of full sleep in reset
Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/hw.c')
-rw-r--r--drivers/net/wireless/ath/ath9k/hw.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
index e07dd1c11dba..35f5cf40a990 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -1137,6 +1137,13 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
ah->txchainmask = common->tx_chainmask;
ah->rxchainmask = common->rx_chainmask;
+ if (!ah->chip_fullsleep) {
+ ath9k_hw_abortpcurecv(ah);
+ if (!ath9k_hw_stopdmarecv(ah))
+ ath_print(common, ATH_DBG_XMIT,
+ "Failed to stop receive dma\n");
+ }
+
if (!ath9k_hw_setpower(ah, ATH9K_PM_AWAKE))
return -EIO;