Fixes from Atheros:

* If AR9130, give the chip extra time to reset
* If AR5416, don't shutdown the chip during reset
This commit is contained in:
Adrian Chadd 2011-05-12 03:15:21 +00:00
parent 4cc96c3e8f
commit 8a90965b83
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=221800

View File

@ -56,7 +56,10 @@ ar5416SetPowerModeAwake(struct ath_hal *ah, int setChip)
OS_REG_SET_BIT(ah, AR_RTC_RESET, AR_RTC_RESET_EN);
OS_REG_SET_BIT(ah, AR_RTC_FORCE_WAKE, AR_RTC_FORCE_WAKE_EN);
OS_DELAY(50); /* Give chip the chance to awake */
if (AR_SREV_HOWL(ah))
OS_DELAY(10000);
else
OS_DELAY(50); /* Give chip the chance to awake */
for (i = POWER_UP_TIME / 50; i != 0; i--) {
val = OS_REG_READ(ah, AR_RTC_STATUS) & AR_RTC_STATUS_M;
@ -94,7 +97,8 @@ ar5416SetPowerModeSleep(struct ath_hal *ah, int setChip)
if (! AR_SREV_HOWL(ah))
OS_REG_WRITE(ah, AR_RC, AR_RC_AHB|AR_RC_HOSTIF);
/* Shutdown chip. Active low */
OS_REG_CLR_BIT(ah, AR_RTC_RESET, AR_RTC_RESET_EN);
if (! AR_SREV_OWL(ah))
OS_REG_CLR_BIT(ah, AR_RTC_RESET, AR_RTC_RESET_EN);
}
}