From 8132fc94cb5005ec2b777a9b7301e8755ed7b7dc Mon Sep 17 00:00:00 2001 From: nbd Date: Mon, 2 Aug 2010 00:08:55 +0000 Subject: 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 --- .../mac80211/patches/540-ath9k_bstuck_debug.patch | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 package/mac80211/patches/540-ath9k_bstuck_debug.patch (limited to 'package/mac80211/patches/540-ath9k_bstuck_debug.patch') 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; -- cgit v1.2.3