ath9k_hw: Read iq calibration data only for active chains
authorVasanthakumar Thiagarajan <vasanth@atheros.com>
Tue, 19 Apr 2011 13:59:16 +0000 (19:29 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 25 Apr 2011 18:50:12 +0000 (14:50 -0400)
Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/ar9003_calib.c

index 09f3aa7f82f5e36a77bd8c8b07eefe39c5f0efe8..bceff49d150bee3eae43f445e727defcf2e08720 100644 (file)
@@ -185,17 +185,19 @@ static void ar9003_hw_iqcal_collect(struct ath_hw *ah)
 
        /* Accumulate IQ cal measures for active chains */
        for (i = 0; i < AR5416_MAX_CHAINS; i++) {
-               ah->totalPowerMeasI[i] +=
-                       REG_READ(ah, AR_PHY_CAL_MEAS_0(i));
-               ah->totalPowerMeasQ[i] +=
-                       REG_READ(ah, AR_PHY_CAL_MEAS_1(i));
-               ah->totalIqCorrMeas[i] +=
-                       (int32_t) REG_READ(ah, AR_PHY_CAL_MEAS_2(i));
-               ath_dbg(ath9k_hw_common(ah), ATH_DBG_CALIBRATE,
-                       "%d: Chn %d pmi=0x%08x;pmq=0x%08x;iqcm=0x%08x;\n",
-                       ah->cal_samples, i, ah->totalPowerMeasI[i],
-                       ah->totalPowerMeasQ[i],
-                       ah->totalIqCorrMeas[i]);
+               if (ah->txchainmask & BIT(i)) {
+                       ah->totalPowerMeasI[i] +=
+                               REG_READ(ah, AR_PHY_CAL_MEAS_0(i));
+                       ah->totalPowerMeasQ[i] +=
+                               REG_READ(ah, AR_PHY_CAL_MEAS_1(i));
+                       ah->totalIqCorrMeas[i] +=
+                               (int32_t) REG_READ(ah, AR_PHY_CAL_MEAS_2(i));
+                       ath_dbg(ath9k_hw_common(ah), ATH_DBG_CALIBRATE,
+                               "%d: Chn %d pmi=0x%08x;pmq=0x%08x;iqcm=0x%08x;\n",
+                               ah->cal_samples, i, ah->totalPowerMeasI[i],
+                               ah->totalPowerMeasQ[i],
+                               ah->totalIqCorrMeas[i]);
+               }
        }
 }