diff options
author | Felix Fietkau <nbd@openwrt.org> | 2012-06-04 13:42:39 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2012-06-04 13:42:39 +0000 |
commit | c9e36f4709ca2ed215699b9e29df817fff95e422 (patch) | |
tree | 3808ec88d024d5559e19daf3f083f1dbb66d0aac /package/mac80211/patches/570-ath9k_remove_noiseFloor.patch | |
parent | b755998cd7d06275d2f98be337ed66de72f349c4 (diff) | |
download | upstream-c9e36f4709ca2ed215699b9e29df817fff95e422.tar.gz upstream-c9e36f4709ca2ed215699b9e29df817fff95e422.tar.bz2 upstream-c9e36f4709ca2ed215699b9e29df817fff95e422.zip |
ath9k: fix ANI weak signal detection handling
SVN-Revision: 32045
Diffstat (limited to 'package/mac80211/patches/570-ath9k_remove_noiseFloor.patch')
-rw-r--r-- | package/mac80211/patches/570-ath9k_remove_noiseFloor.patch | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/package/mac80211/patches/570-ath9k_remove_noiseFloor.patch b/package/mac80211/patches/570-ath9k_remove_noiseFloor.patch new file mode 100644 index 0000000000..fb17dc566a --- /dev/null +++ b/package/mac80211/patches/570-ath9k_remove_noiseFloor.patch @@ -0,0 +1,52 @@ +--- a/drivers/net/wireless/ath/ath9k/ani.h ++++ b/drivers/net/wireless/ath/ath9k/ani.h +@@ -128,7 +128,6 @@ struct ar5416AniState { + u32 listenTime; + int32_t rssiThrLow; + int32_t rssiThrHigh; +- u32 noiseFloor; + u32 ofdmPhyErrCount; + u32 cckPhyErrCount; + int16_t pktRssi[2]; +--- a/drivers/net/wireless/ath/ath9k/ani.c ++++ b/drivers/net/wireless/ath/ath9k/ani.c +@@ -266,11 +266,9 @@ static void ath9k_hw_set_ofdm_nil(struct + const struct ani_ofdm_level_entry *entry_ofdm; + const struct ani_cck_level_entry *entry_cck; + +- aniState->noiseFloor = BEACON_RSSI(ah); +- + ath_dbg(common, ANI, "**** ofdmlevel %d=>%d, rssi=%d[lo=%d hi=%d]\n", + aniState->ofdmNoiseImmunityLevel, +- immunityLevel, aniState->noiseFloor, ++ immunityLevel, BEACON_RSSI(ah), + aniState->rssiThrLow, aniState->rssiThrHigh); + + if (aniState->update_ani) +@@ -292,7 +290,7 @@ static void ath9k_hw_set_ofdm_nil(struct + ATH9K_ANI_FIRSTEP_LEVEL, + entry_ofdm->fir_step_level); + +- if ((aniState->noiseFloor >= aniState->rssiThrHigh) && ++ if (BEACON_RSSI(ah) >= aniState->rssiThrHigh && + (!aniState->ofdmWeakSigDetectOff != + entry_ofdm->ofdm_weak_signal_on)) { + ath9k_hw_ani_control(ah, +@@ -329,15 +327,14 @@ static void ath9k_hw_set_cck_nil(struct + const struct ani_ofdm_level_entry *entry_ofdm; + const struct ani_cck_level_entry *entry_cck; + +- aniState->noiseFloor = BEACON_RSSI(ah); + ath_dbg(common, ANI, "**** ccklevel %d=>%d, rssi=%d[lo=%d hi=%d]\n", + aniState->cckNoiseImmunityLevel, immunityLevel, +- aniState->noiseFloor, aniState->rssiThrLow, ++ BEACON_RSSI(ah), aniState->rssiThrLow, + aniState->rssiThrHigh); + + if ((ah->opmode == NL80211_IFTYPE_STATION || + ah->opmode == NL80211_IFTYPE_ADHOC) && +- aniState->noiseFloor <= aniState->rssiThrLow && ++ BEACON_RSSI(ah) <= aniState->rssiThrLow && + immunityLevel > ATH9K_ANI_CCK_MAX_LEVEL_LOW_RSSI) + immunityLevel = ATH9K_ANI_CCK_MAX_LEVEL_LOW_RSSI; + |