Linux wireless drivers development
 help / color / mirror / Atom feed
* [PATCH 1/3] ath9k_hw: Enable calibration types in init_cal_settings
@ 2013-01-03  6:51 Sujith Manoharan
  2013-01-03  6:51 ` [PATCH 2/3] ath9k_hw: Fix calibration for AR9340 Sujith Manoharan
  2013-01-03  6:51 ` [PATCH 3/3] ath9k_hw: Remove TEMP_COMP_CAL Sujith Manoharan
  0 siblings, 2 replies; 5+ messages in thread
From: Sujith Manoharan @ 2013-01-03  6:51 UTC (permalink / raw)
  To: John Linville; +Cc: linux-wireless

From: Sujith Manoharan <c_manoha@qca.qualcomm.com>

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>
---
 drivers/net/wireless/ath/ath9k/ar9003_calib.c | 17 +++++++++++------
 drivers/net/wireless/ath/ath9k/hw.c           |  7 -------
 2 files changed, 11 insertions(+), 13 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/ar9003_calib.c b/drivers/net/wireless/ath/ath9k/ar9003_calib.c
index 8b0d8dc..598b847 100644
--- a/drivers/net/wireless/ath/ath9k/ar9003_calib.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_calib.c
@@ -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);
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
index 7cb7870..5d73e92 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -2576,12 +2576,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;
@@ -2590,7 +2584,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;
-- 
1.8.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/3] ath9k_hw: Fix calibration for AR9340
  2013-01-03  6:51 [PATCH 1/3] ath9k_hw: Enable calibration types in init_cal_settings Sujith Manoharan
@ 2013-01-03  6:51 ` Sujith Manoharan
  2013-01-03  8:18   ` Schrober
  2013-01-03  6:51 ` [PATCH 3/3] ath9k_hw: Remove TEMP_COMP_CAL Sujith Manoharan
  1 sibling, 1 reply; 5+ messages in thread
From: Sujith Manoharan @ 2013-01-03  6:51 UTC (permalink / raw)
  To: John Linville; +Cc: linux-wireless

From: Sujith Manoharan <c_manoha@qca.qualcomm.com>

TX_IQ_ON_AGC_CAL should not be enabled for AR9340.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
---
 drivers/net/wireless/ath/ath9k/ar9003_calib.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath9k/ar9003_calib.c b/drivers/net/wireless/ath/ath9k/ar9003_calib.c
index 598b847..303e40d 100644
--- a/drivers/net/wireless/ath/ath9k/ar9003_calib.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_calib.c
@@ -326,7 +326,7 @@ static void ar9003_hw_init_cal_settings(struct ath_hw *ah)
 
 	if (AR_SREV_9300_20_OR_LATER(ah)) {
 		ah->enabled_cals |= TX_IQ_CAL;
-		if (AR_SREV_9485_OR_LATER(ah))
+		if (AR_SREV_9485_OR_LATER(ah) && !AR_SREV_9340(ah))
 			ah->enabled_cals |= TX_IQ_ON_AGC_CAL;
 	}
 
-- 
1.8.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/3] ath9k_hw: Remove TEMP_COMP_CAL
  2013-01-03  6:51 [PATCH 1/3] ath9k_hw: Enable calibration types in init_cal_settings Sujith Manoharan
  2013-01-03  6:51 ` [PATCH 2/3] ath9k_hw: Fix calibration for AR9340 Sujith Manoharan
@ 2013-01-03  6:51 ` Sujith Manoharan
  1 sibling, 0 replies; 5+ messages in thread
From: Sujith Manoharan @ 2013-01-03  6:51 UTC (permalink / raw)
  To: John Linville; +Cc: linux-wireless

From: Sujith Manoharan <c_manoha@qca.qualcomm.com>

This is not enabled for any chip and is unused.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
---
 drivers/net/wireless/ath/ath9k/ar9003_calib.c | 20 +++-----------------
 drivers/net/wireless/ath/ath9k/hw.h           |  1 -
 2 files changed, 3 insertions(+), 18 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/ar9003_calib.c b/drivers/net/wireless/ath/ath9k/ar9003_calib.c
index 303e40d..fa67e84 100644
--- a/drivers/net/wireless/ath/ath9k/ar9003_calib.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_calib.c
@@ -32,7 +32,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,
@@ -49,7 +48,7 @@ static void ar9003_hw_setup_calibration(struct ath_hw *ah,
 		 */
 		REG_RMW_FIELD(ah, AR_PHY_TIMING4,
 			      AR_PHY_TIMING4_IQCAL_LOG_COUNT_MAX,
-		currCal->calData->calCountMax);
+			      currCal->calData->calCountMax);
 		REG_WRITE(ah, AR_PHY_CALMODE, AR_PHY_CALMODE_IQ);
 
 		ath_dbg(common, CALIBRATE,
@@ -58,14 +57,8 @@ static void ar9003_hw_setup_calibration(struct ath_hw *ah,
 		/* Kick-off cal */
 		REG_SET_BIT(ah, AR_PHY_TIMING4, AR_PHY_TIMING4_DO_CAL);
 		break;
-	case TEMP_COMP_CAL:
-		REG_RMW_FIELD(ah, AR_PHY_65NM_CH0_THERM,
-			      AR_PHY_65NM_CH0_THERM_LOCAL, 1);
-		REG_RMW_FIELD(ah, AR_PHY_65NM_CH0_THERM,
-			      AR_PHY_65NM_CH0_THERM_START, 1);
-
-		ath_dbg(common, CALIBRATE,
-			"starting Temperature Compensation Calibration\n");
+	default:
+		ath_err(common, "Invalid calibration type\n");
 		break;
 	}
 }
@@ -1144,13 +1137,6 @@ skip_tx_iqcal:
 	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);
-		INSERT_CAL(ah, &ah->tempCompCalData);
-		ath_dbg(common, CALIBRATE,
-			"enabling Temperature Compensation Calibration\n");
-	}
-
 	/* Initialize current pointer to first element in list */
 	ah->cal_list_curr = ah->cal_list;
 
diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
index 7f1a8e9..809599c 100644
--- a/drivers/net/wireless/ath/ath9k/hw.h
+++ b/drivers/net/wireless/ath/ath9k/hw.h
@@ -771,7 +771,6 @@ struct ath_hw {
 	struct ath9k_cal_list iq_caldata;
 	struct ath9k_cal_list adcgain_caldata;
 	struct ath9k_cal_list adcdc_caldata;
-	struct ath9k_cal_list tempCompCalData;
 	struct ath9k_cal_list *cal_list;
 	struct ath9k_cal_list *cal_list_last;
 	struct ath9k_cal_list *cal_list_curr;
-- 
1.8.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/3] ath9k_hw: Fix calibration for AR9340
  2013-01-03  6:51 ` [PATCH 2/3] ath9k_hw: Fix calibration for AR9340 Sujith Manoharan
@ 2013-01-03  8:18   ` Schrober
  2013-01-03  9:25     ` Sujith Manoharan
  0 siblings, 1 reply; 5+ messages in thread
From: Schrober @ 2013-01-03  8:18 UTC (permalink / raw)
  To: Sujith Manoharan; +Cc: John Linville, linux-wireless

On Thursday 03 January 2013 12:21:22 Sujith Manoharan wrote:
> From: Sujith Manoharan <c_manoha@qca.qualcomm.com>
> 
> TX_IQ_ON_AGC_CAL should not be enabled for AR9340.

Why?
-- 
Franz Schrober

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/3] ath9k_hw: Fix calibration for AR9340
  2013-01-03  8:18   ` Schrober
@ 2013-01-03  9:25     ` Sujith Manoharan
  0 siblings, 0 replies; 5+ messages in thread
From: Sujith Manoharan @ 2013-01-03  9:25 UTC (permalink / raw)
  To: Schrober; +Cc: John Linville, linux-wireless

Schrober wrote:
> On Thursday 03 January 2013 12:21:22 Sujith Manoharan wrote:
> > From: Sujith Manoharan <c_manoha@qca.qualcomm.com>
> > 
> > TX_IQ_ON_AGC_CAL should not be enabled for AR9340.
> 
> Why?

Because the chip doesn't support it.

Sujith

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-01-03  9:26 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-03  6:51 [PATCH 1/3] ath9k_hw: Enable calibration types in init_cal_settings Sujith Manoharan
2013-01-03  6:51 ` [PATCH 2/3] ath9k_hw: Fix calibration for AR9340 Sujith Manoharan
2013-01-03  8:18   ` Schrober
2013-01-03  9:25     ` Sujith Manoharan
2013-01-03  6:51 ` [PATCH 3/3] ath9k_hw: Remove TEMP_COMP_CAL Sujith Manoharan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox