aboutsummaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/540-ath9k_bstuck_debug.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-08-02 00:08:55 +0000
committerFelix Fietkau <nbd@openwrt.org>2010-08-02 00:08:55 +0000
commit29eeabb50850ce03c819e4ee49d931b098b4e6a8 (patch)
treea6eefeb1323f44f86c8ee70c24abc019ba7c42fa /package/mac80211/patches/540-ath9k_bstuck_debug.patch
parent54913f956b6dee3e647d9ed2ec363795feb11475 (diff)
downloadupstream-29eeabb50850ce03c819e4ee49d931b098b4e6a8.tar.gz
upstream-29eeabb50850ce03c819e4ee49d931b098b4e6a8.tar.bz2
upstream-29eeabb50850ce03c819e4ee49d931b098b4e6a8.zip
ath9k: improve stuck beacon recovery and noise floor handling. significantly improves stability under strong interference in ap mode
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22460 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/mac80211/patches/540-ath9k_bstuck_debug.patch')
-rw-r--r--package/mac80211/patches/540-ath9k_bstuck_debug.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/package/mac80211/patches/540-ath9k_bstuck_debug.patch b/package/mac80211/patches/540-ath9k_bstuck_debug.patch
new file mode 100644
index 0000000000..b2d44c5bb0
--- /dev/null
+++ b/package/mac80211/patches/540-ath9k_bstuck_debug.patch
@@ -0,0 +1,43 @@
+--- a/drivers/net/wireless/ath/debug.h
++++ b/drivers/net/wireless/ath/debug.h
+@@ -36,6 +36,7 @@
+ * @ATH_DBG_PS: power save processing
+ * @ATH_DBG_HWTIMER: hardware timer handling
+ * @ATH_DBG_BTCOEX: bluetooth coexistance
++ * @ATH_DBG_BSTUCK: stuck beacons
+ * @ATH_DBG_ANY: enable all debugging
+ *
+ * The debug level is used to control the amount and type of debugging output
+@@ -60,6 +61,7 @@ enum ATH_DEBUG {
+ ATH_DBG_HWTIMER = 0x00001000,
+ ATH_DBG_BTCOEX = 0x00002000,
+ ATH_DBG_WMI = 0x00004000,
++ ATH_DBG_BSTUCK = 0x00008000,
+ ATH_DBG_ANY = 0xffffffff
+ };
+
+--- a/drivers/net/wireless/ath/ath9k/beacon.c
++++ b/drivers/net/wireless/ath/ath9k/beacon.c
+@@ -359,11 +359,11 @@ void ath_beacon_tasklet(unsigned long da
+ sc->beacon.bmisscnt++;
+
+ if (sc->beacon.bmisscnt < BSTUCK_THRESH) {
+- ath_print(common, ATH_DBG_BEACON,
++ ath_print(common, ATH_DBG_BSTUCK,
+ "missed %u consecutive beacons\n",
+ sc->beacon.bmisscnt);
+ } else if (sc->beacon.bmisscnt >= BSTUCK_THRESH) {
+- ath_print(common, ATH_DBG_BEACON,
++ ath_print(common, ATH_DBG_BSTUCK,
+ "beacon is officially stuck\n");
+ sc->sc_flags |= SC_OP_TSF_RESET;
+ ath_reset(sc, false);
+@@ -373,7 +373,7 @@ void ath_beacon_tasklet(unsigned long da
+ }
+
+ if (sc->beacon.bmisscnt != 0) {
+- ath_print(common, ATH_DBG_BEACON,
++ ath_print(common, ATH_DBG_BSTUCK,
+ "resume beacon xmit after %u misses\n",
+ sc->beacon.bmisscnt);
+ sc->beacon.bmisscnt = 0;