mirror of https://github.com/hak5/openwrt.git
42 lines
1.7 KiB
Diff
42 lines
1.7 KiB
Diff
--- a/drivers/net/wireless/ath/ath9k/ani.c
|
|
+++ b/drivers/net/wireless/ath/ath9k/ani.c
|
|
@@ -179,6 +179,14 @@ static void ath9k_hw_set_ofdm_nil(struct
|
|
ath9k_hw_ani_control(ah,
|
|
ATH9K_ANI_OFDM_WEAK_SIGNAL_DETECTION,
|
|
entry_ofdm->ofdm_weak_signal_on);
|
|
+
|
|
+ if (aniState->ofdmNoiseImmunityLevel >= ATH9K_ANI_OFDM_DEF_LEVEL) {
|
|
+ ah->config.ofdm_trig_high = ATH9K_ANI_OFDM_TRIG_HIGH;
|
|
+ ah->config.ofdm_trig_low = ATH9K_ANI_OFDM_TRIG_LOW_ABOVE_INI;
|
|
+ } else {
|
|
+ ah->config.ofdm_trig_high = ATH9K_ANI_OFDM_TRIG_HIGH_BELOW_INI;
|
|
+ ah->config.ofdm_trig_low = ATH9K_ANI_OFDM_TRIG_LOW;
|
|
+ }
|
|
}
|
|
|
|
static void ath9k_hw_ani_ofdm_err_trigger(struct ath_hw *ah)
|
|
@@ -428,21 +436,10 @@ void ath9k_hw_ani_monitor(struct ath_hw
|
|
|
|
if (aniState->listenTime > ah->aniperiod) {
|
|
if (cckPhyErrRate < ah->config.cck_trig_low &&
|
|
- ((ofdmPhyErrRate < ah->config.ofdm_trig_low &&
|
|
- aniState->ofdmNoiseImmunityLevel <
|
|
- ATH9K_ANI_OFDM_DEF_LEVEL) ||
|
|
- (ofdmPhyErrRate < ATH9K_ANI_OFDM_TRIG_LOW_ABOVE_INI &&
|
|
- aniState->ofdmNoiseImmunityLevel >=
|
|
- ATH9K_ANI_OFDM_DEF_LEVEL))) {
|
|
+ ofdmPhyErrRate < ah->config.ofdm_trig_low) {
|
|
ath9k_hw_ani_lower_immunity(ah);
|
|
aniState->ofdmsTurn = !aniState->ofdmsTurn;
|
|
- } else if ((ofdmPhyErrRate > ah->config.ofdm_trig_high &&
|
|
- aniState->ofdmNoiseImmunityLevel >=
|
|
- ATH9K_ANI_OFDM_DEF_LEVEL) ||
|
|
- (ofdmPhyErrRate >
|
|
- ATH9K_ANI_OFDM_TRIG_HIGH_BELOW_INI &&
|
|
- aniState->ofdmNoiseImmunityLevel <
|
|
- ATH9K_ANI_OFDM_DEF_LEVEL)) {
|
|
+ } else if (ofdmPhyErrRate > ah->config.ofdm_trig_high) {
|
|
ath9k_hw_ani_ofdm_err_trigger(ah);
|
|
aniState->ofdmsTurn = false;
|
|
} else if (cckPhyErrRate > ah->config.cck_trig_high) {
|