svn commit: r227022 - user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar9002

Adrian Chadd adrian at FreeBSD.org
Wed Nov 2 17:40:21 UTC 2011


Author: adrian
Date: Wed Nov  2 17:40:21 2011
New Revision: 227022
URL: http://svn.freebsd.org/changeset/base/227022

Log:
  Update the AR9280 TX/RX gain type assignment to be correct for earlier
  EEPROM versions.

Modified:
  user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c

Modified: user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c
==============================================================================
--- user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c	Wed Nov  2 16:39:10 2011	(r227021)
+++ user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c	Wed Nov  2 17:40:21 2011	(r227022)
@@ -309,43 +309,55 @@ ar9280Attach(uint16_t devid, HAL_SOFTC s
 		ath_hal_printf(ah, "[ath]: default pwr offset: %d dBm != EEPROM pwr offset: %d dBm; curves will be adjusted.\n",
 		    AR5416_PWR_TABLE_OFFSET_DB, (int) pwr_table_offset);
 
-	/* XXX check for >= minor ver 17 */
 	if (AR_SREV_MERLIN_20(ah)) {
-		/* setup rxgain table */
-		switch (ath_hal_eepromGet(ah, AR_EEP_RXGAIN_TYPE, AH_NULL)) {
-		case AR5416_EEP_RXGAIN_13dB_BACKOFF:
-			HAL_INI_INIT(&ahp9280->ah_ini_rxgain,
-			    ar9280Modes_backoff_13db_rxgain_v2, 6);
-			break;
-		case AR5416_EEP_RXGAIN_23dB_BACKOFF:
-			HAL_INI_INIT(&ahp9280->ah_ini_rxgain,
-			    ar9280Modes_backoff_23db_rxgain_v2, 6);
-			break;
-		case AR5416_EEP_RXGAIN_ORIG:
+		if (EEP_MINOR(ah) >= AR5416_EEP_MINOR_VER_17) {
+			/* setup rxgain table */
+			switch (ath_hal_eepromGet(ah, AR_EEP_RXGAIN_TYPE,
+			    AH_NULL)) {
+			case AR5416_EEP_RXGAIN_13dB_BACKOFF:
+				HAL_INI_INIT(&ahp9280->ah_ini_rxgain,
+				    ar9280Modes_backoff_13db_rxgain_v2, 6);
+				break;
+			case AR5416_EEP_RXGAIN_23dB_BACKOFF:
+				HAL_INI_INIT(&ahp9280->ah_ini_rxgain,
+				    ar9280Modes_backoff_23db_rxgain_v2, 6);
+				break;
+			case AR5416_EEP_RXGAIN_ORIG:
+				HAL_INI_INIT(&ahp9280->ah_ini_rxgain,
+				    ar9280Modes_original_rxgain_v2, 6);
+				break;
+			default:
+				HALASSERT(AH_FALSE);
+				goto bad;
+			}
+		} else {
+			/* Default to original RX gain */
 			HAL_INI_INIT(&ahp9280->ah_ini_rxgain,
 			    ar9280Modes_original_rxgain_v2, 6);
-			break;
-		default:
-			HALASSERT(AH_FALSE);
-			goto bad;		/* XXX ? try to continue */
 		}
 	}
 
-	/* XXX check for >= minor ver 19 */
 	if (AR_SREV_MERLIN_20(ah)) {
-		/* setp txgain table */
-		switch (ath_hal_eepromGet(ah, AR_EEP_TXGAIN_TYPE, AH_NULL)) {
-		case AR5416_EEP_TXGAIN_HIGH_POWER:
-			HAL_INI_INIT(&ahp9280->ah_ini_txgain,
-			    ar9280Modes_high_power_tx_gain_v2, 6);
-			break;
-		case AR5416_EEP_TXGAIN_ORIG:
+		if (EEP_MINOR(ah) >= AR5416_EEP_MINOR_VER_19) {
+			/* setp txgain table */
+			switch (ath_hal_eepromGet(ah, AR_EEP_TXGAIN_TYPE,
+			    AH_NULL)) {
+			case AR5416_EEP_TXGAIN_HIGH_POWER:
+				HAL_INI_INIT(&ahp9280->ah_ini_txgain,
+				    ar9280Modes_high_power_tx_gain_v2, 6);
+				break;
+			case AR5416_EEP_TXGAIN_ORIG:
+				HAL_INI_INIT(&ahp9280->ah_ini_txgain,
+				    ar9280Modes_original_tx_gain_v2, 6);
+				break;
+			default:
+				HALASSERT(AH_FALSE);
+				goto bad;
+			}
+		} else {
+			/* Default to original TX gain */
 			HAL_INI_INIT(&ahp9280->ah_ini_txgain,
 			    ar9280Modes_original_tx_gain_v2, 6);
-			break;
-		default:
-			HALASSERT(AH_FALSE);
-			goto bad;		/* XXX ? try to continue */
 		}
 	}
 


More information about the svn-src-user mailing list