Skip to content

Commit

Permalink
ath9k_hw: add a helper for Power Amplifier calibration for AR9002
Browse files Browse the repository at this point in the history
The code can be simplified and shared between two locations if we bring
this into a helper. During reset we do not account for the skip count.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Luis R. Rodriguez authored and John W. Linville committed Apr 16, 2010
1 parent 939ad86 commit 4d001d1
Showing 1 changed file with 17 additions and 15 deletions.
32 changes: 17 additions & 15 deletions drivers/net/wireless/ath/ath9k/calib.c
Original file line number Diff line number Diff line change
Expand Up @@ -949,6 +949,21 @@ static inline void ath9k_hw_9285_pa_cal(struct ath_hw *ah, bool is_reset)

}

static void ar9002_hw_pa_cal(struct ath_hw *ah, bool is_reset)
{
if (AR_SREV_9271(ah)) {
if (is_reset || !ah->pacal_info.skipcount)
ath9k_hw_9271_pa_cal(ah, is_reset);
else
ah->pacal_info.skipcount--;
} else if (AR_SREV_9285_11_OR_LATER(ah)) {
if (is_reset || !ah->pacal_info.skipcount)
ath9k_hw_9285_pa_cal(ah, is_reset);
else
ah->pacal_info.skipcount--;
}
}

bool ath9k_hw_calibrate(struct ath_hw *ah, struct ath9k_channel *chan,
u8 rxchainmask, bool longcal)
{
Expand All @@ -973,17 +988,7 @@ bool ath9k_hw_calibrate(struct ath_hw *ah, struct ath9k_channel *chan,
/* Do NF cal only at longer intervals */
if (longcal) {
/* Do periodic PAOffset Cal */
if (AR_SREV_9271(ah)) {
if (!ah->pacal_info.skipcount)
ath9k_hw_9271_pa_cal(ah, false);
else
ah->pacal_info.skipcount--;
} else if (AR_SREV_9285_11_OR_LATER(ah)) {
if (!ah->pacal_info.skipcount)
ath9k_hw_9285_pa_cal(ah, false);
else
ah->pacal_info.skipcount--;
}
ar9002_hw_pa_cal(ah, false);

if (OLC_FOR_AR9280_20_LATER || OLC_FOR_AR9287_10_LATER)
ath9k_olc_temp_compensation(ah);
Expand Down Expand Up @@ -1142,10 +1147,7 @@ bool ath9k_hw_init_cal(struct ath_hw *ah, struct ath9k_channel *chan)
}

/* Do PA Calibration */
if (AR_SREV_9271(ah))
ath9k_hw_9271_pa_cal(ah, true);
else if (AR_SREV_9285_11_OR_LATER(ah))
ath9k_hw_9285_pa_cal(ah, true);
ar9002_hw_pa_cal(ah, true);

/* Do NF Calibration after DC offset and other calibrations */
REG_WRITE(ah, AR_PHY_AGC_CONTROL,
Expand Down

0 comments on commit 4d001d1

Please sign in to comment.