ath9k_hw: Fix magnitude/phase coeff correction
authorRajkumar Manoharan <rmanohar@qca.qualcomm.com>
Thu, 15 Sep 2011 13:32:25 +0000 (19:02 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 19 Sep 2011 19:58:25 +0000 (15:58 -0400)
Do the magnitude/phase coeff correction only if the outlier
is detected. Updating wrong magnitude/phase coeff factor
impacts not only tx gain setting but also leads to poor
performance in congested networks. In the clear environment
the impact is very minimal because the outlier happens
very rarely according to the past experiment. It occured
less than once every 1000 calibrations.

Cc: stable@kernel.org
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/ar9003_calib.c

index 3319a676c0fbc25062a7acd5e6da7ecea5100fb3..695d9d38d4823d6ad3b84d3f82b54ab2401cb169 100644 (file)
@@ -652,8 +652,9 @@ static void ar9003_hw_detect_outlier(int *mp_coeff, int nmeasurement,
                        outlier_idx = max_idx;
                else
                        outlier_idx = min_idx;
+
+               mp_coeff[outlier_idx] = mp_avg;
        }
-       mp_coeff[outlier_idx] = mp_avg;
 }
 
 static void ar9003_hw_tx_iqcal_load_avg_2_passes(struct ath_hw *ah,