Author: adrian
Date: Fri Mar 11 03:46:27 2011
New Revision: 219474
URL: http://svn.freebsd.org/changeset/base/219474

Log:
  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.

Modified:
  head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c

Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c      Fri Mar 11 00:44:32 
2011        (r219473)
+++ head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c      Fri Mar 11 03:46:27 
2011        (r219474)
@@ -405,7 +405,7 @@ ar5416ChannelChange(struct ath_hal *ah, 
                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
        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);
 }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to