aboutsummaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/300-pending_work.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2013-02-25 19:56:26 +0000
committerFelix Fietkau <nbd@openwrt.org>2013-02-25 19:56:26 +0000
commit21b8c331fcdca77f0edaf413294f270f1466dfbf (patch)
tree0b199d4b895a0ff351596e6e4f5b1d5e2e5a268f /package/mac80211/patches/300-pending_work.patch
parent1210965f13f87b6edf5324f2d1e901bd7c4b9d70 (diff)
downloadupstream-21b8c331fcdca77f0edaf413294f270f1466dfbf.tar.gz
upstream-21b8c331fcdca77f0edaf413294f270f1466dfbf.tar.bz2
upstream-21b8c331fcdca77f0edaf413294f270f1466dfbf.zip
ath9k: issue a cold reset after failures or after bringing the chip out of full sleep - fixes many kinds of DMA issues
Backport of r35785 git-svn-id: svn://svn.openwrt.org/openwrt/branches/attitude_adjustment@35786 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/mac80211/patches/300-pending_work.patch')
-rw-r--r--package/mac80211/patches/300-pending_work.patch13
1 files changed, 12 insertions, 1 deletions
diff --git a/package/mac80211/patches/300-pending_work.patch b/package/mac80211/patches/300-pending_work.patch
index 3607e76657..7cc4569673 100644
--- a/package/mac80211/patches/300-pending_work.patch
+++ b/package/mac80211/patches/300-pending_work.patch
@@ -1177,7 +1177,18 @@
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
-@@ -2568,7 +2568,7 @@ int ath9k_hw_fill_cap_info(struct ath_hw
+@@ -1467,7 +1467,9 @@ static bool ath9k_hw_chip_reset(struct a
+ reset_type = ATH9K_RESET_POWER_ON;
+ else
+ reset_type = ATH9K_RESET_COLD;
+- }
++ } else if (ah->chip_fullsleep || REG_READ(ah, AR_Q_TXE) ||
++ (REG_READ(ah, AR_CR) & AR_CR_RXE))
++ reset_type = ATH9K_RESET_COLD;
+
+ if (!ath9k_hw_set_reset_reg(ah, reset_type))
+ return false;
+@@ -2568,7 +2570,7 @@ int ath9k_hw_fill_cap_info(struct ath_hw
if (AR_SREV_9300_20_OR_LATER(ah)) {
ah->enabled_cals |= TX_IQ_CAL;