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-head mailing list