summaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/531-ath9k_cal_cleanup.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/mac80211/patches/531-ath9k_cal_cleanup.patch')
-rw-r--r--package/mac80211/patches/531-ath9k_cal_cleanup.patch248
1 files changed, 0 insertions, 248 deletions
diff --git a/package/mac80211/patches/531-ath9k_cal_cleanup.patch b/package/mac80211/patches/531-ath9k_cal_cleanup.patch
deleted file mode 100644
index 3a14d5289..000000000
--- a/package/mac80211/patches/531-ath9k_cal_cleanup.patch
+++ /dev/null
@@ -1,248 +0,0 @@
---- a/drivers/net/wireless/ath/ath9k/hw.h
-+++ b/drivers/net/wireless/ath/ath9k/hw.h
-@@ -535,8 +535,6 @@ struct ath_hw_private_ops {
- bool (*macversion_supported)(u32 macversion);
- void (*setup_calibration)(struct ath_hw *ah,
- struct ath9k_cal_list *currCal);
-- bool (*iscal_supported)(struct ath_hw *ah,
-- enum ath9k_cal_types calType);
-
- /* PHY ops */
- int (*rf_set_freq)(struct ath_hw *ah,
-@@ -689,7 +687,7 @@ struct ath_hw {
- u32 atim_window;
-
- /* Calibration */
-- enum ath9k_cal_types supp_cals;
-+ u32 supp_cals;
- struct ath9k_cal_list iq_caldata;
- struct ath9k_cal_list adcgain_caldata;
- struct ath9k_cal_list adcdc_caldata;
---- a/drivers/net/wireless/ath/ath9k/ar9002_calib.c
-+++ b/drivers/net/wireless/ath/ath9k/ar9002_calib.c
-@@ -20,6 +20,13 @@
-
- #define AR9285_CLCAL_REDO_THRESH 1
-
-+enum ar9002_cal_types {
-+ ADC_GAIN_CAL = BIT(0),
-+ ADC_DC_CAL = BIT(1),
-+ IQ_MISMATCH_CAL = BIT(2),
-+};
-+
-+
- static void ar9002_hw_setup_calibration(struct ath_hw *ah,
- struct ath9k_cal_list *currCal)
- {
-@@ -45,8 +52,6 @@ static void ar9002_hw_setup_calibration(
- ath_print(common, ATH_DBG_CALIBRATE,
- "starting ADC DC Calibration\n");
- break;
-- case TEMP_COMP_CAL:
-- break; /* Not supported */
- }
-
- REG_SET_BIT(ah, AR_PHY_TIMING_CTRL4(0),
-@@ -91,25 +96,6 @@ static bool ar9002_hw_per_calibration(st
- return iscaldone;
- }
-
--/* Assumes you are talking about the currently configured channel */
--static bool ar9002_hw_iscal_supported(struct ath_hw *ah,
-- enum ath9k_cal_types calType)
--{
-- struct ieee80211_conf *conf = &ath9k_hw_common(ah)->hw->conf;
--
-- switch (calType & ah->supp_cals) {
-- case IQ_MISMATCH_CAL: /* Both 2 GHz and 5 GHz support OFDM */
-- return true;
-- case ADC_GAIN_CAL:
-- case ADC_DC_CAL:
-- if (!(conf->channel->band == IEEE80211_BAND_2GHZ &&
-- conf_is_ht20(conf)))
-- return true;
-- break;
-- }
-- return false;
--}
--
- static void ar9002_hw_iqcal_collect(struct ath_hw *ah)
- {
- int i;
-@@ -872,24 +858,28 @@ static bool ar9002_hw_init_cal(struct at
-
- /* Enable IQ, ADC Gain and ADC DC offset CALs */
- if (AR_SREV_9100(ah) || AR_SREV_9160_10_OR_LATER(ah)) {
-- if (ar9002_hw_iscal_supported(ah, ADC_GAIN_CAL)) {
-+ ah->supp_cals = IQ_MISMATCH_CAL;
-+
-+ if (AR_SREV_9160_10_OR_LATER(ah) &&
-+ !(IS_CHAN_2GHZ(chan) && IS_CHAN_HT20(chan))) {
-+ ah->supp_cals |= ADC_GAIN_CAL | ADC_DC_CAL;
-+
-+
- INIT_CAL(&ah->adcgain_caldata);
- INSERT_CAL(ah, &ah->adcgain_caldata);
- ath_print(common, ATH_DBG_CALIBRATE,
- "enabling ADC Gain Calibration.\n");
-- }
-- if (ar9002_hw_iscal_supported(ah, ADC_DC_CAL)) {
-+
- INIT_CAL(&ah->adcdc_caldata);
- INSERT_CAL(ah, &ah->adcdc_caldata);
- ath_print(common, ATH_DBG_CALIBRATE,
- "enabling ADC DC Calibration.\n");
- }
-- if (ar9002_hw_iscal_supported(ah, IQ_MISMATCH_CAL)) {
-- INIT_CAL(&ah->iq_caldata);
-- INSERT_CAL(ah, &ah->iq_caldata);
-- ath_print(common, ATH_DBG_CALIBRATE,
-- "enabling IQ Calibration.\n");
-- }
-+
-+ INIT_CAL(&ah->iq_caldata);
-+ INSERT_CAL(ah, &ah->iq_caldata);
-+ ath_print(common, ATH_DBG_CALIBRATE,
-+ "enabling IQ Calibration.\n");
-
- ah->cal_list_curr = ah->cal_list;
-
-@@ -980,7 +970,6 @@ void ar9002_hw_attach_calib_ops(struct a
- priv_ops->init_cal_settings = ar9002_hw_init_cal_settings;
- priv_ops->init_cal = ar9002_hw_init_cal;
- priv_ops->setup_calibration = ar9002_hw_setup_calibration;
-- priv_ops->iscal_supported = ar9002_hw_iscal_supported;
-
- ops->calibrate = ar9002_hw_calibrate;
- }
---- a/drivers/net/wireless/ath/ath9k/ar9003_calib.c
-+++ b/drivers/net/wireless/ath/ath9k/ar9003_calib.c
-@@ -18,6 +18,11 @@
- #include "hw-ops.h"
- #include "ar9003_phy.h"
-
-+enum ar9003_cal_types {
-+ IQ_MISMATCH_CAL = BIT(0),
-+ TEMP_COMP_CAL = BIT(1),
-+};
-+
- static void ar9003_hw_setup_calibration(struct ath_hw *ah,
- struct ath9k_cal_list *currCal)
- {
-@@ -50,10 +55,6 @@ static void ar9003_hw_setup_calibration(
- ath_print(common, ATH_DBG_CALIBRATE,
- "starting Temperature Compensation Calibration\n");
- break;
-- case ADC_GAIN_CAL:
-- case ADC_DC_CAL:
-- /* Not yet */
-- break;
- }
- }
-
-@@ -313,27 +314,6 @@ static const struct ath9k_percal_data iq
- static void ar9003_hw_init_cal_settings(struct ath_hw *ah)
- {
- ah->iq_caldata.calData = &iq_cal_single_sample;
-- ah->supp_cals = IQ_MISMATCH_CAL;
--}
--
--static bool ar9003_hw_iscal_supported(struct ath_hw *ah,
-- enum ath9k_cal_types calType)
--{
-- switch (calType & ah->supp_cals) {
-- case IQ_MISMATCH_CAL:
-- /*
-- * XXX: Run IQ Mismatch for non-CCK only
-- * Note that CHANNEL_B is never set though.
-- */
-- return true;
-- case ADC_GAIN_CAL:
-- case ADC_DC_CAL:
-- return false;
-- case TEMP_COMP_CAL:
-- return true;
-- }
--
-- return false;
- }
-
- /*
-@@ -772,15 +752,16 @@ static bool ar9003_hw_init_cal(struct at
-
- /* Initialize list pointers */
- ah->cal_list = ah->cal_list_last = ah->cal_list_curr = NULL;
-+ ah->supp_cals = IQ_MISMATCH_CAL;
-
-- if (ar9003_hw_iscal_supported(ah, IQ_MISMATCH_CAL)) {
-+ if (ah->supp_cals & IQ_MISMATCH_CAL) {
- INIT_CAL(&ah->iq_caldata);
- INSERT_CAL(ah, &ah->iq_caldata);
- ath_print(common, ATH_DBG_CALIBRATE,
- "enabling IQ Calibration.\n");
- }
-
-- if (ar9003_hw_iscal_supported(ah, TEMP_COMP_CAL)) {
-+ if (ah->supp_cals & TEMP_COMP_CAL) {
- INIT_CAL(&ah->tempCompCalData);
- INSERT_CAL(ah, &ah->tempCompCalData);
- ath_print(common, ATH_DBG_CALIBRATE,
-@@ -807,7 +788,6 @@ void ar9003_hw_attach_calib_ops(struct a
- priv_ops->init_cal_settings = ar9003_hw_init_cal_settings;
- priv_ops->init_cal = ar9003_hw_init_cal;
- priv_ops->setup_calibration = ar9003_hw_setup_calibration;
-- priv_ops->iscal_supported = ar9003_hw_iscal_supported;
-
- ops->calibrate = ar9003_hw_calibrate;
- }
---- a/drivers/net/wireless/ath/ath9k/calib.h
-+++ b/drivers/net/wireless/ath/ath9k/calib.h
-@@ -58,13 +58,6 @@ struct ar5416IniArray {
- } \
- } while (0)
-
--enum ath9k_cal_types {
-- ADC_GAIN_CAL = 0x2,
-- ADC_DC_CAL = 0x4,
-- IQ_MISMATCH_CAL = 0x8,
-- TEMP_COMP_CAL = 0x10,
--};
--
- enum ath9k_cal_state {
- CAL_INACTIVE,
- CAL_WAITING,
-@@ -79,7 +72,7 @@ enum ath9k_cal_state {
- #define PER_MAX_LOG_COUNT 10
-
- struct ath9k_percal_data {
-- enum ath9k_cal_types calType;
-+ u32 calType;
- u32 calNumSamples;
- u32 calCountMax;
- void (*calCollect) (struct ath_hw *);
---- a/drivers/net/wireless/ath/ath9k/hw-ops.h
-+++ b/drivers/net/wireless/ath/ath9k/hw-ops.h
-@@ -276,12 +276,6 @@ static inline void ath9k_hw_setup_calibr
- ath9k_hw_private_ops(ah)->setup_calibration(ah, currCal);
- }
-
--static inline bool ath9k_hw_iscal_supported(struct ath_hw *ah,
-- enum ath9k_cal_types calType)
--{
-- return ath9k_hw_private_ops(ah)->iscal_supported(ah, calType);
--}
--
- static inline void ath9k_ani_reset(struct ath_hw *ah, bool is_scanning)
- {
- ath9k_hw_private_ops(ah)->ani_reset(ah, is_scanning);
---- a/drivers/net/wireless/ath/ath9k/calib.c
-+++ b/drivers/net/wireless/ath/ath9k/calib.c
-@@ -186,7 +186,7 @@ bool ath9k_hw_reset_calvalid(struct ath_
- return true;
- }
-
-- if (!ath9k_hw_iscal_supported(ah, currCal->calData->calType))
-+ if (!(ah->supp_cals & currCal->calData->calType))
- return true;
-
- ath_print(common, ATH_DBG_CALIBRATE,