diff options
author | Luis R. Rodriguez <lrodriguez@atheros.com> | 2010-04-15 17:39:10 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-04-16 15:43:35 -0400 |
commit | 4b01931e3a3ca5ec49604e2b279b8b9dd42fbe4c (patch) | |
tree | a1b02d411189093ead6ac30f81a241d4263303d9 /drivers/net/wireless/ath/ath9k/ar9003_calib.c | |
parent | 77d6d39a77939e5ed7e2ec72a1c1dce828ee582e (diff) |
ath9k_hw: fill in the callbacks for calibration for AR9003
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/ar9003_calib.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ar9003_calib.c | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_calib.c b/drivers/net/wireless/ath/ath9k/ar9003_calib.c index cd80a43ffcff..f0e8f639ecfd 100644 --- a/drivers/net/wireless/ath/ath9k/ar9003_calib.c +++ b/drivers/net/wireless/ath/ath9k/ar9003_calib.c | |||
@@ -21,7 +21,41 @@ | |||
21 | static void ar9003_hw_setup_calibration(struct ath_hw *ah, | 21 | static void ar9003_hw_setup_calibration(struct ath_hw *ah, |
22 | struct ath9k_cal_list *currCal) | 22 | struct ath9k_cal_list *currCal) |
23 | { | 23 | { |
24 | /* TODO */ | 24 | struct ath_common *common = ath9k_hw_common(ah); |
25 | |||
26 | /* Select calibration to run */ | ||
27 | switch (currCal->calData->calType) { | ||
28 | case IQ_MISMATCH_CAL: | ||
29 | /* | ||
30 | * Start calibration with | ||
31 | * 2^(INIT_IQCAL_LOG_COUNT_MAX+1) samples | ||
32 | */ | ||
33 | REG_RMW_FIELD(ah, AR_PHY_TIMING4, | ||
34 | AR_PHY_TIMING4_IQCAL_LOG_COUNT_MAX, | ||
35 | currCal->calData->calCountMax); | ||
36 | REG_WRITE(ah, AR_PHY_CALMODE, AR_PHY_CALMODE_IQ); | ||
37 | |||
38 | ath_print(common, ATH_DBG_CALIBRATE, | ||
39 | "starting IQ Mismatch Calibration\n"); | ||
40 | |||
41 | /* Kick-off cal */ | ||
42 | REG_SET_BIT(ah, AR_PHY_TIMING4, AR_PHY_TIMING4_DO_CAL); | ||
43 | break; | ||
44 | case TEMP_COMP_CAL: | ||
45 | REG_RMW_FIELD(ah, AR_PHY_65NM_CH0_THERM, | ||
46 | AR_PHY_65NM_CH0_THERM_LOCAL, 1); | ||
47 | REG_RMW_FIELD(ah, AR_PHY_65NM_CH0_THERM, | ||
48 | AR_PHY_65NM_CH0_THERM_START, 1); | ||
49 | |||
50 | ath_print(common, ATH_DBG_CALIBRATE, | ||
51 | "starting Temperature Compensation Calibration\n"); | ||
52 | break; | ||
53 | case ADC_DC_INIT_CAL: | ||
54 | case ADC_GAIN_CAL: | ||
55 | case ADC_DC_CAL: | ||
56 | /* Not yet */ | ||
57 | break; | ||
58 | } | ||
25 | } | 59 | } |
26 | 60 | ||
27 | static bool ar9003_hw_calibrate(struct ath_hw *ah, | 61 | static bool ar9003_hw_calibrate(struct ath_hw *ah, |