ath9k: reset noiseimmunity level to default
authorRajkumar Manoharan <rmanohar@qca.qualcomm.com>
Fri, 13 Apr 2012 11:14:20 +0000 (16:44 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 16 Apr 2012 18:38:44 +0000 (14:38 -0400)
After the chip reset, the noise immunity levels are restored with
history values. If the immunity levels are lower than the defaults,
lets start with the optimal values.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/ani.c

index 47a9fb4..b4c77f9 100644 (file)
@@ -274,7 +274,9 @@ static void ath9k_hw_set_ofdm_nil(struct ath_hw *ah, u8 immunityLevel)
                aniState->rssiThrLow, aniState->rssiThrHigh);
 
        if (aniState->update_ani)
-               aniState->ofdmNoiseImmunityLevel = immunityLevel;
+               aniState->ofdmNoiseImmunityLevel =
+                       (immunityLevel > ATH9K_ANI_OFDM_DEF_LEVEL) ?
+                       immunityLevel : ATH9K_ANI_OFDM_DEF_LEVEL;
 
        entry_ofdm = &ofdm_level_table[aniState->ofdmNoiseImmunityLevel];
        entry_cck = &cck_level_table[aniState->cckNoiseImmunityLevel];
@@ -340,7 +342,9 @@ static void ath9k_hw_set_cck_nil(struct ath_hw *ah, u_int8_t immunityLevel)
                immunityLevel = ATH9K_ANI_CCK_MAX_LEVEL_LOW_RSSI;
 
        if (aniState->update_ani)
-               aniState->cckNoiseImmunityLevel = immunityLevel;
+               aniState->cckNoiseImmunityLevel =
+                       (immunityLevel > ATH9K_ANI_CCK_DEF_LEVEL) ?
+                       immunityLevel : ATH9K_ANI_CCK_DEF_LEVEL;
 
        entry_ofdm = &ofdm_level_table[aniState->ofdmNoiseImmunityLevel];
        entry_cck = &cck_level_table[aniState->cckNoiseImmunityLevel];