| From 304e5ac118cc351eb047b6c433a89e13ea7259cf Mon Sep 17 00:00:00 2001 |
| From: Felix Fietkau <nbd@nbd.name> |
| Date: Tue, 11 Oct 2016 19:46:49 +0200 |
| Subject: Revert "ath9k_hw: implement temperature compensation support for AR9003+" |
| |
| From: Felix Fietkau <nbd@nbd.name> |
| |
| commit 304e5ac118cc351eb047b6c433a89e13ea7259cf upstream. |
| |
| This reverts commit 171f6402e4aa ("ath9k_hw: implement temperature compensation |
| support for AR9003+"). Some users report that this commit causes a regression |
| in performance under some conditions. |
| |
| Fixes: 171f6402e4aa ("ath9k_hw: implement temperature compensation support for AR9003+") |
| Signed-off-by: Felix Fietkau <nbd@nbd.name> |
| [kvalo@qca.qualcomm.com: improve commit log] |
| Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/net/wireless/ath/ath9k/ar9003_calib.c | 25 +++---------------------- |
| drivers/net/wireless/ath/ath9k/hw.h | 1 - |
| 2 files changed, 3 insertions(+), 23 deletions(-) |
| |
| --- a/drivers/net/wireless/ath/ath9k/ar9003_calib.c |
| +++ b/drivers/net/wireless/ath/ath9k/ar9003_calib.c |
| @@ -33,7 +33,6 @@ struct coeff { |
| |
| enum ar9003_cal_types { |
| IQ_MISMATCH_CAL = BIT(0), |
| - TEMP_COMP_CAL = BIT(1), |
| }; |
| |
| static void ar9003_hw_setup_calibration(struct ath_hw *ah, |
| @@ -59,12 +58,6 @@ static void ar9003_hw_setup_calibration( |
| /* Kick-off cal */ |
| REG_SET_BIT(ah, AR_PHY_TIMING4, AR_PHY_TIMING4_DO_CAL); |
| break; |
| - case TEMP_COMP_CAL: |
| - ath_dbg(common, CALIBRATE, |
| - "starting Temperature Compensation Calibration\n"); |
| - REG_SET_BIT(ah, AR_CH0_THERM, AR_CH0_THERM_LOCAL); |
| - REG_SET_BIT(ah, AR_CH0_THERM, AR_CH0_THERM_START); |
| - break; |
| default: |
| ath_err(common, "Invalid calibration type\n"); |
| break; |
| @@ -93,8 +86,7 @@ static bool ar9003_hw_per_calibration(st |
| /* |
| * Accumulate cal measures for active chains |
| */ |
| - if (cur_caldata->calCollect) |
| - cur_caldata->calCollect(ah); |
| + cur_caldata->calCollect(ah); |
| ah->cal_samples++; |
| |
| if (ah->cal_samples >= cur_caldata->calNumSamples) { |
| @@ -107,8 +99,7 @@ static bool ar9003_hw_per_calibration(st |
| /* |
| * Process accumulated data |
| */ |
| - if (cur_caldata->calPostProc) |
| - cur_caldata->calPostProc(ah, numChains); |
| + cur_caldata->calPostProc(ah, numChains); |
| |
| /* Calibration has finished. */ |
| caldata->CalValid |= cur_caldata->calType; |
| @@ -323,16 +314,9 @@ static const struct ath9k_percal_data iq |
| ar9003_hw_iqcalibrate |
| }; |
| |
| -static const struct ath9k_percal_data temp_cal_single_sample = { |
| - TEMP_COMP_CAL, |
| - MIN_CAL_SAMPLES, |
| - PER_MAX_LOG_COUNT, |
| -}; |
| - |
| static void ar9003_hw_init_cal_settings(struct ath_hw *ah) |
| { |
| ah->iq_caldata.calData = &iq_cal_single_sample; |
| - ah->temp_caldata.calData = &temp_cal_single_sample; |
| |
| if (AR_SREV_9300_20_OR_LATER(ah)) { |
| ah->enabled_cals |= TX_IQ_CAL; |
| @@ -340,7 +324,7 @@ static void ar9003_hw_init_cal_settings( |
| ah->enabled_cals |= TX_IQ_ON_AGC_CAL; |
| } |
| |
| - ah->supp_cals = IQ_MISMATCH_CAL | TEMP_COMP_CAL; |
| + ah->supp_cals = IQ_MISMATCH_CAL; |
| } |
| |
| #define OFF_UPPER_LT 24 |
| @@ -1399,9 +1383,6 @@ static void ar9003_hw_init_cal_common(st |
| INIT_CAL(&ah->iq_caldata); |
| INSERT_CAL(ah, &ah->iq_caldata); |
| |
| - INIT_CAL(&ah->temp_caldata); |
| - INSERT_CAL(ah, &ah->temp_caldata); |
| - |
| /* Initialize current pointer to first element in list */ |
| ah->cal_list_curr = ah->cal_list; |
| |
| --- a/drivers/net/wireless/ath/ath9k/hw.h |
| +++ b/drivers/net/wireless/ath/ath9k/hw.h |
| @@ -830,7 +830,6 @@ struct ath_hw { |
| /* Calibration */ |
| u32 supp_cals; |
| struct ath9k_cal_list iq_caldata; |
| - struct ath9k_cal_list temp_caldata; |
| struct ath9k_cal_list adcgain_caldata; |
| struct ath9k_cal_list adcdc_caldata; |
| struct ath9k_cal_list *cal_list; |