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);
        }
 }
 
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to