diff options
author | Felix Fietkau <nbd@openwrt.org> | 2013-05-19 22:49:09 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2013-05-19 22:49:09 +0000 |
commit | 1e6f5133622f8734c70bf2be783acb9c0a63d9f9 (patch) | |
tree | d68308037f7ebb2c3831c6f6f70bfce5b5e22c47 /package | |
parent | c2d237515af8703257954484e8ee2fc1a318f244 (diff) | |
download | upstream-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.patch | 28 |
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; + } |