summaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/540-ath9k_bstuck_debug.patch
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-08-02 00:08:55 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-08-02 00:08:55 +0000
commit8132fc94cb5005ec2b777a9b7301e8755ed7b7dc (patch)
treea6eefeb1323f44f86c8ee70c24abc019ba7c42fa /package/mac80211/patches/540-ath9k_bstuck_debug.patch
parent5ef70c6dac645535d60bd29ff0d6813b0429a6ae (diff)
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 000000000..b2d44c5bb
--- /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;