ath9k_hw: restrict valid nf readings for AR9271 to -114
authorSujith <Sujith.Manoharan@atheros.com>
Wed, 17 Mar 2010 08:55:20 +0000 (14:25 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 23 Mar 2010 20:50:14 +0000 (16:50 -0400)
Noisefloor values read on AR9271 are unreliable if they
are less than -114, set those statically to -116.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/calib.c

index 0c3e9c8..e76dd74 100644 (file)
@@ -101,6 +101,10 @@ static void ath9k_hw_do_getnf(struct ath_hw *ah,
                nf = 0 - ((nf ^ 0x1ff) + 1);
        ath_print(common, ATH_DBG_CALIBRATE,
                  "NF calibrated [ctl] [chain 0] is %d\n", nf);
+
+       if (AR_SREV_9271(ah) && (nf >= -114))
+               nf = -116;
+
        nfarray[0] = nf;
 
        if (!AR_SREV_9285(ah) && !AR_SREV_9271(ah)) {
@@ -139,6 +143,10 @@ static void ath9k_hw_do_getnf(struct ath_hw *ah,
                nf = 0 - ((nf ^ 0x1ff) + 1);
        ath_print(common, ATH_DBG_CALIBRATE,
                  "NF calibrated [ext] [chain 0] is %d\n", nf);
+
+       if (AR_SREV_9271(ah) && (nf >= -114))
+               nf = -116;
+
        nfarray[3] = nf;
 
        if (!AR_SREV_9285(ah) && !AR_SREV_9271(ah)) {