| From e9c10469cf3c71bc1c6b0f01319161e277d6ac9b Mon Sep 17 00:00:00 2001 |
| From: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> |
| Date: Thu, 15 Sep 2011 19:02:25 +0530 |
| Subject: ath9k_hw: Fix magnitude/phase coeff correction |
| |
| From: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> |
| |
| 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> |
| |
| --- |
| drivers/net/wireless/ath/ath9k/ar9003_calib.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- 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 |
| 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, |