Browse Source

ath9k_hw: reduce ANI spur immunity setting on HT40 extension channel

The cycpwr_thr1 value needs to be lower on the extension channel than on
the control channel, similar to how the register settings are programmed
in the initvals.

Also drop the unnecessary check for HT40 - this register can always be
written. This patch has been reported to improve HT40 stability and
throughput in some environments.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Felix Fietkau 11 years ago
parent
commit
b874ec8d57
1 changed files with 2 additions and 3 deletions
  1. 2 3
      drivers/net/wireless/ath/ath9k/ar5008_phy.c

+ 2 - 3
drivers/net/wireless/ath/ath9k/ar5008_phy.c

@@ -1042,9 +1042,8 @@ static bool ar5008_hw_ani_control_new(struct ath_hw *ah,
 		REG_RMW_FIELD(ah, AR_PHY_TIMING5,
 		REG_RMW_FIELD(ah, AR_PHY_TIMING5,
 			      AR_PHY_TIMING5_CYCPWR_THR1, value);
 			      AR_PHY_TIMING5_CYCPWR_THR1, value);
 
 
-		if (IS_CHAN_HT40(ah->curchan))
-			REG_RMW_FIELD(ah, AR_PHY_EXT_CCA,
-				      AR_PHY_EXT_TIMING5_CYCPWR_THR1, value);
+		REG_RMW_FIELD(ah, AR_PHY_EXT_CCA,
+				  AR_PHY_EXT_TIMING5_CYCPWR_THR1, value - 1);
 
 
 		if (level != aniState->spurImmunityLevel) {
 		if (level != aniState->spurImmunityLevel) {
 			ath_dbg(common, ANI,
 			ath_dbg(common, ANI,