Patch "Revert "ath9k_hw: implement temperature compensation support for AR9003+"" has been added to the 4.8-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
Revert "ath9k_hw: implement temperature compensation support for AR9003+"
to the 4.8-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
revert-ath9k_hw-implement-temperature-compensation-support-for-ar9003.patch
and it can be found in the queue-4.8 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
304e5ac118cc351eb047b6c433a89e13ea7259cfMon Sep 17 00:00:00 2001
From: Felix Fietkau <[email protected]>
Date: Tue, 11 Oct 2016 19:46:49 +0200
Subject: Revert "ath9k_hw: implement temperature compensation support for AR9003+"
From: Felix Fietkau <[email protected]>
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.
--- drivers/net/wireless/ath/ath9k/ar9003_calib.c | 25 +++---------------------- drivers/net/wireless/ath/ath9k/hw.h | 1 - 2 files changed, 3 insertions(+), 23 deletions(-)
drivers/net/wireless/ath/ath9k/ar9003_calib.c +3 -22
@@ -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(stINIT_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;
drivers/net/wireless/ath/ath9k/hw.h +0 -1
@@ -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;
Patches currently in stable-queue which might be from [email protected] are
queue-4.8/revert-ath9k_hw-implement-temperature-compensation-support-for-ar9003.patch