aboutsummaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2013-05-19 22:49:09 +0000
committerFelix Fietkau <nbd@openwrt.org>2013-05-19 22:49:09 +0000
commit1e6f5133622f8734c70bf2be783acb9c0a63d9f9 (patch)
treed68308037f7ebb2c3831c6f6f70bfce5b5e22c47 /package
parentc2d237515af8703257954484e8ee2fc1a318f244 (diff)
downloadupstream-1e6f5133622f8734c70bf2be783acb9c0a63d9f9.tar.gz
upstream-1e6f5133622f8734c70bf2be783acb9c0a63d9f9.tar.bz2
upstream-1e6f5133622f8734c70bf2be783acb9c0a63d9f9.zip
ar71xx: add an external reset callback for ar913x and use it in ath9k
should reduce the frequency of DMA stop failures Backport of r36530 Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/branches/attitude_adjustment@36664 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package')
-rw-r--r--package/mac80211/patches/556-ath9k_ar913x_external_reset.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/package/mac80211/patches/556-ath9k_ar913x_external_reset.patch b/package/mac80211/patches/556-ath9k_ar913x_external_reset.patch
new file mode 100644
index 0000000000..c95f391478
--- /dev/null
+++ b/package/mac80211/patches/556-ath9k_ar913x_external_reset.patch
@@ -0,0 +1,28 @@
+--- a/drivers/net/wireless/ath/ath9k/hw.c
++++ b/drivers/net/wireless/ath/ath9k/hw.c
+@@ -1374,7 +1374,10 @@ static bool ath9k_hw_set_reset(struct at
+
+ REGWRITE_BUFFER_FLUSH(ah);
+
+- udelay(50);
++ if (AR_SREV_9100(ah))
++ mdelay(10);
++ else
++ udelay(50);
+
+ REG_WRITE(ah, AR_RTC_RC, 0);
+ if (!ath9k_hw_wait(ah, AR_RTC_RC, AR_RTC_RC_M, 0, AH_WAIT_TIMEOUT)) {
+@@ -1385,8 +1388,12 @@ static bool ath9k_hw_set_reset(struct at
+ if (!AR_SREV_9100(ah))
+ REG_WRITE(ah, AR_RC, 0);
+
+- if (AR_SREV_9100(ah))
++ if (AR_SREV_9100(ah) && type != ATH9K_RESET_WARM) {
++ if (ah->external_reset)
++ ah->external_reset();
++
+ udelay(50);
++ }
+
+ return true;
+ }