diff options
author | Felix Fietkau <nbd@openwrt.org> | 2013-02-25 19:56:26 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2013-02-25 19:56:26 +0000 |
commit | 21b8c331fcdca77f0edaf413294f270f1466dfbf (patch) | |
tree | 0b199d4b895a0ff351596e6e4f5b1d5e2e5a268f /package/mac80211/patches/300-pending_work.patch | |
parent | 1210965f13f87b6edf5324f2d1e901bd7c4b9d70 (diff) | |
download | upstream-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.patch | 13 |
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; |