ath9k_hw: Enable calibration types in init_cal_settings
authorSujith Manoharan <c_manoha@qca.qualcomm.com>
Thu, 3 Jan 2013 06:51:21 +0000 (12:21 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 7 Jan 2013 20:16:59 +0000 (15:16 -0500)
Doing this in ath9k_hw_fill_cap_info() is odd and it's
cleaner to do this in the init function for calibration.
Also, setup the supported calibration type in init_cal_settings.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/ar9003_calib.c
drivers/net/wireless/ath/ath9k/hw.c

index 8b0d8dcd76255239e7451b4a1258adca79ef8342..598b847e4e5abf42e0fcfc122eee68ff66ca8537 100644 (file)
@@ -323,6 +323,14 @@ static const struct ath9k_percal_data iq_cal_single_sample = {
 static void ar9003_hw_init_cal_settings(struct ath_hw *ah)
 {
        ah->iq_caldata.calData = &iq_cal_single_sample;
+
+       if (AR_SREV_9300_20_OR_LATER(ah)) {
+               ah->enabled_cals |= TX_IQ_CAL;
+               if (AR_SREV_9485_OR_LATER(ah))
+                       ah->enabled_cals |= TX_IQ_ON_AGC_CAL;
+       }
+
+       ah->supp_cals = IQ_MISMATCH_CAL;
 }
 
 /*
@@ -1131,13 +1139,10 @@ skip_tx_iqcal:
 
        /* Initialize list pointers */
        ah->cal_list = ah->cal_list_last = ah->cal_list_curr = NULL;
-       ah->supp_cals = IQ_MISMATCH_CAL;
 
-       if (ah->supp_cals & IQ_MISMATCH_CAL) {
-               INIT_CAL(&ah->iq_caldata);
-               INSERT_CAL(ah, &ah->iq_caldata);
-               ath_dbg(common, CALIBRATE, "enabling IQ Calibration\n");
-       }
+       INIT_CAL(&ah->iq_caldata);
+       INSERT_CAL(ah, &ah->iq_caldata);
+       ath_dbg(common, CALIBRATE, "enabling IQ Calibration\n");
 
        if (ah->supp_cals & TEMP_COMP_CAL) {
                INIT_CAL(&ah->tempCompCalData);
index ecf1c08a03c1b62d7b3b96fd157d96900ea0193c..caf0626eeaa50d21ccf5efd113e3a3cfd104dbfb 100644 (file)
@@ -2568,12 +2568,6 @@ int ath9k_hw_fill_cap_info(struct ath_hw *ah)
                rx_chainmask >>= 1;
        }
 
-       if (AR_SREV_9300_20_OR_LATER(ah)) {
-               ah->enabled_cals |= TX_IQ_CAL;
-               if (AR_SREV_9485_OR_LATER(ah))
-                       ah->enabled_cals |= TX_IQ_ON_AGC_CAL;
-       }
-
        if (AR_SREV_9462(ah) || AR_SREV_9565(ah)) {
                if (!(ah->ent_mode & AR_ENT_OTP_49GHZ_DISABLE))
                        pCap->hw_caps |= ATH9K_HW_CAP_MCI;
@@ -2582,7 +2576,6 @@ int ath9k_hw_fill_cap_info(struct ath_hw *ah)
                        pCap->hw_caps |= ATH9K_HW_CAP_RTT;
        }
 
-
        if (AR_SREV_9280_20_OR_LATER(ah)) {
                pCap->hw_caps |= ATH9K_HW_WOW_DEVICE_CAPABLE |
                                 ATH9K_HW_WOW_PATTERN_MATCH_EXACT;