ar5416: initialize AR_CFG on little-endian systems

Reference: FreeBSD r195426


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@4084 0192ed92-7a03-0410-a25b-9323aeb14dbd
This commit is contained in:
proski 2009-08-11 22:10:26 +00:00
parent 5ca67e983b
commit ec0aeb9411

View File

@ -1738,7 +1738,7 @@ ar5416SetResetPowerOn(struct ath_hal *ah)
static HAL_BOOL
ar5416SetReset(struct ath_hal *ah, int type)
{
uint32_t tmpReg;
uint32_t tmpReg, mask;
/*
* Force wake
@ -1784,23 +1784,22 @@ ar5416SetReset(struct ath_hal *ah, int type)
/* Clear AHB reset */
OS_REG_WRITE(ah, AR_RC, 0);
/* Set register and descriptor swapping on
* Bigendian platforms on cold reset
*/
#ifdef __BIG_ENDIAN__
if (type == HAL_RESET_COLD) {
uint32_t mask;
HALDEBUG(ah, HAL_DEBUG_RESET,
"%s Applying descriptor swap\n", __func__);
if (isBigEndian()) {
/*
* Set CFG, little-endian for register
* and descriptor accesses.
*/
mask = INIT_CONFIG_STATUS | AR_CFG_SWRD | AR_CFG_SWRG;
#ifndef AH_NEED_DESC_SWAP
mask |= AR_CFG_SWTD;
#endif
HALDEBUG(ah, HAL_DEBUG_RESET,
"%s Applying descriptor swap\n", __func__);
OS_REG_WRITE(ah, AR_CFG, LE_READ_4(&mask));
} else
OS_REG_WRITE(ah, AR_CFG, INIT_CONFIG_STATUS);
}
#endif
ar5416InitPLL(ah, AH_NULL);