OSDN Git Service

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 3b3e910..b72d0be 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,