Don't call ar5416SetTransmitPower() directly from ar5416SetTxPowerLimit();

this is incorrect for Kite (AR9285) and any future chipsets that
override the EEPROM related routines.

It meant that a direct call to set the TX power would call the v14 EEPROM
AR5416/AR9280 calibration routines, rather than the v4k EEPROM routines
for the AR9285. It thus read the incorrect values from the EEPROM and
programmed garbage PDADC and TX power values into the hardware.
This commit is contained in:
Adrian Chadd 2011-03-11 03:46:27 +00:00
parent 79422085d4
commit 9ec9578e01

View File

@ -405,7 +405,7 @@ ar5416ChannelChange(struct ath_hal *ah, const structu ieee80211_channel *chan)
return AH_FALSE;
/* Setup the transmit power values. */
if (!ar5416SetTransmitPower(ah, chan, rfXpdGain)) {
if (!ah->ah_setTxPower(ah, chan, rfXpdGain)) {
HALDEBUG(ah, HAL_DEBUG_ANY,
"%s: error init'ing transmit power\n", __func__);
return AH_FALSE;
@ -748,7 +748,7 @@ ar5416SetTxPowerLimit(struct ath_hal *ah, uint32_t limit)
uint16_t dummyXpdGains[2];
AH_PRIVATE(ah)->ah_powerLimit = AH_MIN(limit, MAX_RATE_POWER);
return ar5416SetTransmitPower(ah, AH_PRIVATE(ah)->ah_curchan,
return ah->ah_setTxPower(ah, AH_PRIVATE(ah)->ah_curchan,
dummyXpdGains);
}