ath9k_hw: reduce ANI spur immunity setting on HT40 extension channel
authorFelix Fietkau <nbd@openwrt.org>
Mon, 29 Sep 2014 18:45:41 +0000 (20:45 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 30 Sep 2014 17:17:47 +0000 (13:17 -0400)
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>
drivers/net/wireless/ath/ath9k/ar5008_phy.c

index 3b3e91057a4cbdb6860006ce0e19a22c3b835774..b72d0be716dbdc91c56f822f1ec3d352f82e4e80 100644 (file)
@@ -1042,9 +1042,8 @@ static bool ar5008_hw_ani_control_new(struct ath_hw *ah,
                REG_RMW_FIELD(ah, AR_PHY_TIMING5,
                              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) {
                        ath_dbg(common, ANI,