svn commit: r221875 - in head/sys/dev/ath/ath_hal: ar5416 ar9002
Adrian Chadd
adrian at FreeBSD.org
Sat May 14 04:05:23 UTC 2011
Author: adrian
Date: Sat May 14 04:05:23 2011
New Revision: 221875
URL: http://svn.freebsd.org/changeset/base/221875
Log:
Fixes from the Atheros HAL - formatting; update Merlin checks to be consistent.
Nothing functional should change with this commit.
Modified:
head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c
head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c
Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c Sat May 14 04:02:56 2011 (r221874)
+++ head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c Sat May 14 04:05:23 2011 (r221875)
@@ -146,7 +146,7 @@ ar5416Reset(struct ath_hal *ah, HAL_OPMO
/* For chips on which the RTC reset is done, save TSF before it gets cleared */
if (AR_SREV_HOWL(ah) ||
- (AR_SREV_MERLIN_20_OR_LATER(ah) && ath_hal_eepromGetFlag(ah, AR_EEP_OL_PWRCTRL)))
+ (AR_SREV_MERLIN(ah) && ath_hal_eepromGetFlag(ah, AR_EEP_OL_PWRCTRL)))
tsf = ar5212GetTsf64(ah);
/* Mark PHY as inactive; marked active in ar5416InitBB() */
@@ -663,7 +663,7 @@ ar5416ChipReset(struct ath_hal *ah, cons
/*
* Warm reset is optimistic.
*/
- if (AR_SREV_MERLIN_20_OR_LATER(ah) &&
+ if (AR_SREV_MERLIN(ah) &&
ath_hal_eepromGetFlag(ah, AR_EEP_OL_PWRCTRL)) {
if (!ar5416SetResetReg(ah, HAL_RESET_POWER_ON))
return AH_FALSE;
@@ -1449,7 +1449,7 @@ ar5416SetDefGainValues(struct ath_hal *a
if (IS_EEP_MINOR_V3(ah)) {
txRxAttenLocal = pModal->txRxAttenCh[i];
- if (AR_SREV_MERLIN_20_OR_LATER(ah)) {
+ if (AR_SREV_MERLIN_10_OR_LATER(ah)) {
OS_REG_RMW_FIELD(ah, AR_PHY_GAIN_2GHZ + regChainOffset,
AR_PHY_GAIN_2GHZ_XATTEN1_MARGIN,
pModal->bswMargin[i]);
@@ -1472,7 +1472,7 @@ ar5416SetDefGainValues(struct ath_hal *a
}
}
- if (AR_SREV_MERLIN_20_OR_LATER(ah)) {
+ if (AR_SREV_MERLIN_10_OR_LATER(ah)) {
OS_REG_RMW_FIELD(ah,
AR_PHY_RXGAIN + regChainOffset,
AR9280_PHY_RXGAIN_TXRX_ATTEN, txRxAttenLocal);
@@ -1551,8 +1551,10 @@ ar5416SetBoardValues(struct ath_hal *ah,
SM(pModal->iqCalQCh[i], AR_PHY_TIMING_CTRL4_IQCORR_Q_Q_COFF));
/*
- * Large signal upgrade.
- * XXX update
+ * Large signal upgrade,
+ * If 14.3 or later EEPROM, use
+ * txRxAttenLocal = pModal->txRxAttenCh[i]
+ * else txRxAttenLocal is fixed value above.
*/
if ((i == 0) || AR_SREV_5416_V20_OR_LATER(ah))
@@ -1560,7 +1562,7 @@ ar5416SetBoardValues(struct ath_hal *ah,
}
- if (AR_SREV_MERLIN_20_OR_LATER(ah)) {
+ if (AR_SREV_MERLIN_10_OR_LATER(ah)) {
if (IEEE80211_IS_CHAN_2GHZ(chan)) {
OS_A_REG_RMW_FIELD(ah, AR_AN_RF2G1_CH0, AR_AN_RF2G1_CH0_OB, pModal->ob);
OS_A_REG_RMW_FIELD(ah, AR_AN_RF2G1_CH0, AR_AN_RF2G1_CH0_DB, pModal->db);
@@ -1582,7 +1584,7 @@ ar5416SetBoardValues(struct ath_hal *ah,
OS_REG_RMW_FIELD(ah, AR_PHY_SETTLING, AR_PHY_SETTLING_SWITCH, pModal->switchSettling);
OS_REG_RMW_FIELD(ah, AR_PHY_DESIRED_SZ, AR_PHY_DESIRED_SZ_ADC, pModal->adcDesiredSize);
- if (! AR_SREV_MERLIN_20_OR_LATER(ah))
+ if (! AR_SREV_MERLIN_10_OR_LATER(ah))
OS_REG_RMW_FIELD(ah, AR_PHY_DESIRED_SZ, AR_PHY_DESIRED_SZ_PGA, pModal->pgaDesiredSize);
OS_REG_WRITE(ah, AR_PHY_RF_CTL4,
@@ -1591,7 +1593,8 @@ ar5416SetBoardValues(struct ath_hal *ah,
| SM(pModal->txFrameToXpaOn, AR_PHY_RF_CTL4_FRAME_XPAA_ON)
| SM(pModal->txFrameToXpaOn, AR_PHY_RF_CTL4_FRAME_XPAB_ON));
- OS_REG_RMW_FIELD(ah, AR_PHY_RF_CTL3, AR_PHY_TX_END_TO_A2_RX_ON, pModal->txEndToRxOn);
+ OS_REG_RMW_FIELD(ah, AR_PHY_RF_CTL3, AR_PHY_TX_END_TO_A2_RX_ON,
+ pModal->txEndToRxOn);
if (AR_SREV_MERLIN_10_OR_LATER(ah)) {
OS_REG_RMW_FIELD(ah, AR_PHY_CCA, AR9280_PHY_CCA_THRESH62,
@@ -1607,27 +1610,36 @@ ar5416SetBoardValues(struct ath_hal *ah,
/* Minor Version Specific application */
if (IS_EEP_MINOR_V2(ah)) {
- OS_REG_RMW_FIELD(ah, AR_PHY_RF_CTL2, AR_PHY_TX_FRAME_TO_DATA_START, pModal->txFrameToDataStart);
- OS_REG_RMW_FIELD(ah, AR_PHY_RF_CTL2, AR_PHY_TX_FRAME_TO_PA_ON, pModal->txFrameToPaOn);
+ OS_REG_RMW_FIELD(ah, AR_PHY_RF_CTL2, AR_PHY_TX_FRAME_TO_DATA_START,
+ pModal->txFrameToDataStart);
+ OS_REG_RMW_FIELD(ah, AR_PHY_RF_CTL2, AR_PHY_TX_FRAME_TO_PA_ON,
+ pModal->txFrameToPaOn);
}
if (IS_EEP_MINOR_V3(ah) && IEEE80211_IS_CHAN_HT40(chan))
/* Overwrite switch settling with HT40 value */
- OS_REG_RMW_FIELD(ah, AR_PHY_SETTLING, AR_PHY_SETTLING_SWITCH, pModal->swSettleHt40);
+ OS_REG_RMW_FIELD(ah, AR_PHY_SETTLING, AR_PHY_SETTLING_SWITCH,
+ pModal->swSettleHt40);
if (AR_SREV_MERLIN_20_OR_LATER(ah) && EEP_MINOR(ah) >= AR5416_EEP_MINOR_VER_19)
OS_REG_RMW_FIELD(ah, AR_PHY_CCK_TX_CTRL, AR_PHY_CCK_TX_CTRL_TX_DAC_SCALE_CCK, pModal->miscBits);
if (AR_SREV_MERLIN_20(ah) && EEP_MINOR(ah) >= AR5416_EEP_MINOR_VER_20) {
if (IEEE80211_IS_CHAN_2GHZ(chan))
- OS_A_REG_RMW_FIELD(ah, AR_AN_TOP1, AR_AN_TOP1_DACIPMODE, eep->baseEepHeader.dacLpMode);
+ OS_A_REG_RMW_FIELD(ah, AR_AN_TOP1, AR_AN_TOP1_DACIPMODE,
+ eep->baseEepHeader.dacLpMode);
else if (eep->baseEepHeader.dacHiPwrMode_5G)
OS_A_REG_RMW_FIELD(ah, AR_AN_TOP1, AR_AN_TOP1_DACIPMODE, 0);
else
- OS_A_REG_RMW_FIELD(ah, AR_AN_TOP1, AR_AN_TOP1_DACIPMODE, eep->baseEepHeader.dacLpMode);
+ OS_A_REG_RMW_FIELD(ah, AR_AN_TOP1, AR_AN_TOP1_DACIPMODE,
+ eep->baseEepHeader.dacLpMode);
+
+ OS_DELAY(100);
- OS_REG_RMW_FIELD(ah, AR_PHY_FRAME_CTL, AR_PHY_FRAME_CTL_TX_CLIP, pModal->miscBits >> 2);
- OS_REG_RMW_FIELD(ah, AR_PHY_TX_PWRCTRL9, AR_PHY_TX_DESIRED_SCALE_CCK, eep->baseEepHeader.desiredScaleCCK);
+ OS_REG_RMW_FIELD(ah, AR_PHY_FRAME_CTL, AR_PHY_FRAME_CTL_TX_CLIP,
+ pModal->miscBits >> 2);
+ OS_REG_RMW_FIELD(ah, AR_PHY_TX_PWRCTRL9, AR_PHY_TX_DESIRED_SCALE_CCK,
+ eep->baseEepHeader.desiredScaleCCK);
}
return AH_TRUE;
Modified: head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c Sat May 14 04:02:56 2011 (r221874)
+++ head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c Sat May 14 04:05:23 2011 (r221875)
@@ -99,6 +99,10 @@ ar9280AniSetup(struct ath_hal *ah)
ar5416AniAttach(ah, &aniparams, &aniparams, AH_TRUE);
}
+/* XXX shouldn't be here! */
+#define EEP_MINOR(_ah) \
+ (AH_PRIVATE(_ah)->ah_eeversion & AR5416_EEP_VER_MINOR_MASK)
+
/*
* Attach for an AR9280 part.
*/
@@ -270,7 +274,8 @@ 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);
- if (AR_SREV_MERLIN_20_OR_LATER(ah)) {
+ /* 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:
@@ -290,7 +295,9 @@ ar9280Attach(uint16_t devid, HAL_SOFTC s
goto bad; /* XXX ? try to continue */
}
}
- if (AR_SREV_MERLIN_20_OR_LATER(ah)) {
+
+ /* 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:
More information about the svn-src-head
mailing list