ath9k_hw: fix periodic noise floor calibration on AR9003
authorFelix Fietkau <nbd@openwrt.org>
Fri, 30 Jul 2010 19:02:10 +0000 (21:02 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 4 Aug 2010 19:27:36 +0000 (15:27 -0400)
The periodic noise floor calibration is broken on this chip family, because
it keeps triggering a software-filtered noise floor calibration, but never
reads the result before uploading the history buffer value to the hardware.

Fix this with a call to ath9k_hw_getnf(), just like on AR9002.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Acked-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/ar9003_calib.c

index 938365e..f51ab89 100644 (file)
@@ -149,6 +149,12 @@ static bool ar9003_hw_calibrate(struct ath_hw *ah,
        /* Do NF cal only at longer intervals */
        if (longcal) {
                /*
+                * Get the value from the previous NF cal and update
+                * history buffer.
+                */
+               ath9k_hw_getnf(ah, chan);
+
+               /*
                 * Load the NF from history buffer of the current channel.
                 * NF is slow time-variant, so it is OK to use a historical
                 * value.