From: Felix Fietkau Date: Fri, 23 Jul 2010 02:08:24 +0000 (+0000) Subject: ath9k: fix invalid noisefloor measurement values in ht20 mode X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=f4331b40a41627abae335bc43627d43d0d2bcb3e;p=openwrt%2Fstaging%2Fluka.git ath9k: fix invalid noisefloor measurement values in ht20 mode SVN-Revision: 22361 --- diff --git a/package/mac80211/patches/530-ath9k_nf_fix.patch b/package/mac80211/patches/530-ath9k_nf_fix.patch new file mode 100644 index 0000000000..081c2ab74b --- /dev/null +++ b/package/mac80211/patches/530-ath9k_nf_fix.patch @@ -0,0 +1,46 @@ +--- a/drivers/net/wireless/ath/ath9k/ar5008_phy.c ++++ b/drivers/net/wireless/ath/ath9k/ar5008_phy.c +@@ -1508,6 +1508,9 @@ static void ar5008_hw_do_getnf(struct at + nf = MS(REG_READ(ah, AR_PHY_CH2_CCA), AR_PHY_CH2_MINCCA_PWR); + nfarray[2] = sign_extend(nf, 9); + ++ if (!IS_CHAN_HT40(ah->curchan)) ++ return; ++ + nf = MS(REG_READ(ah, AR_PHY_EXT_CCA), AR_PHY_EXT_MINCCA_PWR); + nfarray[3] = sign_extend(nf, 9); + +--- a/drivers/net/wireless/ath/ath9k/ar9002_phy.c ++++ b/drivers/net/wireless/ath/ath9k/ar9002_phy.c +@@ -477,7 +477,8 @@ static void ar9002_hw_do_getnf(struct at + nfarray[0] = sign_extend(nf, 9); + + nf = MS(REG_READ(ah, AR_PHY_EXT_CCA), AR9280_PHY_EXT_MINCCA_PWR); +- nfarray[3] = sign_extend(nf, 9); ++ if (IS_CHAN_HT40(ah->curchan)) ++ nfarray[3] = sign_extend(nf, 9); + + if (AR_SREV_9285(ah) || AR_SREV_9271(ah)) + return; +@@ -486,7 +487,8 @@ static void ar9002_hw_do_getnf(struct at + nfarray[1] = sign_extend(nf, 9); + + nf = MS(REG_READ(ah, AR_PHY_CH1_EXT_CCA), AR9280_PHY_CH1_EXT_MINCCA_PWR); +- nfarray[4] = sign_extend(nf, 9); ++ if (IS_CHAN_HT40(ah->curchan)) ++ nfarray[4] = sign_extend(nf, 9); + } + + static void ar9002_hw_set_nf_limits(struct ath_hw *ah) +--- a/drivers/net/wireless/ath/ath9k/ar9003_phy.c ++++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.c +@@ -1029,6 +1029,9 @@ static void ar9003_hw_do_getnf(struct at + nf = MS(REG_READ(ah, AR_PHY_CCA_2), AR_PHY_CH2_MINCCA_PWR); + nfarray[2] = sign_extend(nf, 9); + ++ if (!IS_CHAN_HT40(ah->curchan)) ++ return; ++ + nf = MS(REG_READ(ah, AR_PHY_EXT_CCA), AR_PHY_EXT_MINCCA_PWR); + nfarray[3] = sign_extend(nf, 9); +