Browse Source

ath9k: Check explicitly for IQ calibration

In chips like AR955x, the initvals contain the information
whether IQ calibration is to be done in the HW when an
AGC calibration is triggered. Check if IQ-CAL is enabled
in the initvals before flagging 'txiqcal_done' as true.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Sujith Manoharan 11 years ago
parent
commit
9fded99ad7
1 changed files with 6 additions and 1 deletions
  1. 6 1
      drivers/net/wireless/ath/ath9k/ar9003_calib.c

+ 6 - 1
drivers/net/wireless/ath/ath9k/ar9003_calib.c

@@ -1482,7 +1482,12 @@ static bool ar9003_hw_init_cal_soc(struct ath_hw *ah,
 	 * AGC calibration. Specifically, AR9550 in SoC chips.
 	 * AGC calibration. Specifically, AR9550 in SoC chips.
 	 */
 	 */
 	if (ah->enabled_cals & TX_IQ_ON_AGC_CAL) {
 	if (ah->enabled_cals & TX_IQ_ON_AGC_CAL) {
-		txiqcal_done = true;
+		if (REG_READ_FIELD(ah, AR_PHY_TX_IQCAL_CONTROL_0,
+				   AR_PHY_TX_IQCAL_CONTROL_0_ENABLE_TXIQ_CAL)) {
+				txiqcal_done = true;
+		} else {
+			txiqcal_done = false;
+		}
 		run_agc_cal = true;
 		run_agc_cal = true;
 	} else {
 	} else {
 		sep_iq_cal = true;
 		sep_iq_cal = true;