svn commit: r221800 - head/sys/dev/ath/ath_hal/ar5416
Adrian Chadd
adrian at FreeBSD.org
Thu May 12 03:15:21 UTC 2011
Author: adrian
Date: Thu May 12 03:15:21 2011
New Revision: 221800
URL: http://svn.freebsd.org/changeset/base/221800
Log:
Fixes from Atheros:
* If AR9130, give the chip extra time to reset
* If AR5416, don't shutdown the chip during reset
Modified:
head/sys/dev/ath/ath_hal/ar5416/ar5416_power.c
Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_power.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5416/ar5416_power.c Thu May 12 02:23:06 2011 (r221799)
+++ head/sys/dev/ath/ath_hal/ar5416/ar5416_power.c Thu May 12 03:15:21 2011 (r221800)
@@ -56,7 +56,10 @@ ar5416SetPowerModeAwake(struct ath_hal *
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 *
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);
}
}
More information about the svn-src-all
mailing list