aboutsummaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/300-pending_work.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2013-02-25 19:53:31 +0000
committerFelix Fietkau <nbd@openwrt.org>2013-02-25 19:53:31 +0000
commit7ed6b61a06e919cb19c92220b5f339dc2716eb39 (patch)
tree804f3bd0c6671ed2e4b4e2a4a317b1efa7b102ab /package/mac80211/patches/300-pending_work.patch
parent154a868b36cc92a9fa227d6406916a572e676de0 (diff)
downloadmaster-187ad058-7ed6b61a06e919cb19c92220b5f339dc2716eb39.tar.gz
master-187ad058-7ed6b61a06e919cb19c92220b5f339dc2716eb39.tar.bz2
master-187ad058-7ed6b61a06e919cb19c92220b5f339dc2716eb39.zip
ath9k: issue a cold reset after failures or after bringing the chip out of full sleep - fixes many kinds of DMA issues
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35785 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, 13 insertions, 0 deletions
diff --git a/package/mac80211/patches/300-pending_work.patch b/package/mac80211/patches/300-pending_work.patch
index 11c9a5af4d..51da3cf84d 100644
--- a/package/mac80211/patches/300-pending_work.patch
+++ b/package/mac80211/patches/300-pending_work.patch
@@ -499,3 +499,16 @@
ret = 0;
}
rcu_read_unlock();
+--- a/drivers/net/wireless/ath/ath9k/hw.c
++++ b/drivers/net/wireless/ath/ath9k/hw.c
+@@ -1463,7 +1463,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;