Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 May 2011 03:15:21 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r221800 - head/sys/dev/ath/ath_hal/ar5416
Message-ID:  <201105120315.p4C3FLGS017731@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);
 	}
 }
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201105120315.p4C3FLGS017731>