|
@@ -26,10 +26,6 @@ static const int firstep_table[] =
|
|
|
/* level: 0 1 2 3 4 5 6 7 8 */
|
|
|
{ -4, -2, 0, 2, 4, 6, 8, 10, 12 }; /* lvl 0-8, default 2 */
|
|
|
|
|
|
-static const int cycpwrThr1_table[] =
|
|
|
-/* level: 0 1 2 3 4 5 6 7 8 */
|
|
|
- { -6, -4, -2, 0, 2, 4, 6, 8 }; /* lvl 0-7, default 3 */
|
|
|
-
|
|
|
/*
|
|
|
* register values to turn OFDM weak signal detection OFF
|
|
|
*/
|
|
@@ -1073,41 +1069,13 @@ static bool ar5008_hw_ani_control_new(struct ath_hw *ah,
|
|
|
case ATH9K_ANI_SPUR_IMMUNITY_LEVEL:{
|
|
|
u32 level = param;
|
|
|
|
|
|
- if (level >= ARRAY_SIZE(cycpwrThr1_table)) {
|
|
|
- ath_dbg(common, ANI,
|
|
|
- "ATH9K_ANI_SPUR_IMMUNITY_LEVEL: level out of range (%u > %zu)\n",
|
|
|
- level, ARRAY_SIZE(cycpwrThr1_table));
|
|
|
- return false;
|
|
|
- }
|
|
|
- /*
|
|
|
- * make register setting relative to default
|
|
|
- * from INI file & cap value
|
|
|
- */
|
|
|
- value = cycpwrThr1_table[level] -
|
|
|
- cycpwrThr1_table[ATH9K_ANI_SPUR_IMMUNE_LVL] +
|
|
|
- aniState->iniDef.cycpwrThr1;
|
|
|
- if (value < ATH9K_SIG_SPUR_IMM_SETTING_MIN)
|
|
|
- value = ATH9K_SIG_SPUR_IMM_SETTING_MIN;
|
|
|
- if (value > ATH9K_SIG_SPUR_IMM_SETTING_MAX)
|
|
|
- value = ATH9K_SIG_SPUR_IMM_SETTING_MAX;
|
|
|
+ value = (level + 1) * 2;
|
|
|
REG_RMW_FIELD(ah, AR_PHY_TIMING5,
|
|
|
- AR_PHY_TIMING5_CYCPWR_THR1,
|
|
|
- value);
|
|
|
+ AR_PHY_TIMING5_CYCPWR_THR1, value);
|
|
|
|
|
|
- /*
|
|
|
- * set AR_PHY_EXT_CCA for extension channel
|
|
|
- * make register setting relative to default
|
|
|
- * from INI file & cap value
|
|
|
- */
|
|
|
- value2 = cycpwrThr1_table[level] -
|
|
|
- cycpwrThr1_table[ATH9K_ANI_SPUR_IMMUNE_LVL] +
|
|
|
- aniState->iniDef.cycpwrThr1Ext;
|
|
|
- if (value2 < ATH9K_SIG_SPUR_IMM_SETTING_MIN)
|
|
|
- value2 = ATH9K_SIG_SPUR_IMM_SETTING_MIN;
|
|
|
- if (value2 > ATH9K_SIG_SPUR_IMM_SETTING_MAX)
|
|
|
- value2 = ATH9K_SIG_SPUR_IMM_SETTING_MAX;
|
|
|
- REG_RMW_FIELD(ah, AR_PHY_EXT_CCA,
|
|
|
- AR_PHY_EXT_TIMING5_CYCPWR_THR1, value2);
|
|
|
+ if (IS_CHAN_HT40(ah->curchan))
|
|
|
+ REG_RMW_FIELD(ah, AR_PHY_EXT_CCA,
|
|
|
+ AR_PHY_EXT_TIMING5_CYCPWR_THR1, value);
|
|
|
|
|
|
if (level != aniState->spurImmunityLevel) {
|
|
|
ath_dbg(common, ANI,
|
|
@@ -1124,7 +1092,7 @@ static bool ar5008_hw_ani_control_new(struct ath_hw *ah,
|
|
|
aniState->spurImmunityLevel,
|
|
|
level,
|
|
|
ATH9K_ANI_SPUR_IMMUNE_LVL,
|
|
|
- value2,
|
|
|
+ value,
|
|
|
aniState->iniDef.cycpwrThr1Ext);
|
|
|
if (level > aniState->spurImmunityLevel)
|
|
|
ah->stats.ast_ani_spurup++;
|