diff options
author | Felix Fietkau <nbd@openwrt.org> | 2010-08-02 00:08:55 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2010-08-02 00:08:55 +0000 |
commit | 29eeabb50850ce03c819e4ee49d931b098b4e6a8 (patch) | |
tree | a6eefeb1323f44f86c8ee70c24abc019ba7c42fa /package/mac80211/patches/540-ath9k_bstuck_debug.patch | |
parent | 54913f956b6dee3e647d9ed2ec363795feb11475 (diff) | |
download | upstream-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.patch | 43 |
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; |