aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRajkumar Manoharan <rmanohar@qca.qualcomm.com>2011-09-15 09:32:25 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2011-11-11 12:35:43 -0500
commit26155866748bad74d6b257ba891d794dad85f621 (patch)
tree75bac6ab70d7f908ee24ef9bd52c326f2d792c32
parent1ad894adcc396cb74d1ee7173d013a803c457ad8 (diff)
ath9k_hw: Fix magnitude/phase coeff correction
commit e9c10469cf3c71bc1c6b0f01319161e277d6ac9b upstream. 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. Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_calib.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_calib.c b/drivers/net/wireless/ath/ath9k/ar9003_calib.c
index f48051c5009..7c2aaad24ed 100644
--- a/drivers/net/wireless/ath/ath9k/ar9003_calib.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_calib.c
@@ -643,8 +643,9 @@ static void ar9003_hw_detect_outlier(int *mp_coeff, int nmeasurement,
643 outlier_idx = max_idx; 643 outlier_idx = max_idx;
644 else 644 else
645 outlier_idx = min_idx; 645 outlier_idx = min_idx;
646
647 mp_coeff[outlier_idx] = mp_avg;
646 } 648 }
647 mp_coeff[outlier_idx] = mp_avg;
648} 649}
649 650
650static void ar9003_hw_tx_iqcal_load_avg_2_passes(struct ath_hw *ah, 651static void ar9003_hw_tx_iqcal_load_avg_2_passes(struct ath_hw *ah,