svn commit: r269146 - head/sys/contrib/dev/ath/ath_hal/ar9300

Adrian Chadd adrian at FreeBSD.org
Sat Jul 26 21:32:04 UTC 2014


Author: adrian
Date: Sat Jul 26 21:32:03 2014
New Revision: 269146
URL: http://svnweb.freebsd.org/changeset/base/269146

Log:
  store the AR9300 interrupts away when doing interrupt debugging.

Modified:
  head/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_interrupts.c

Modified: head/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_interrupts.c
==============================================================================
--- head/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_interrupts.c	Sat Jul 26 20:42:54 2014	(r269145)
+++ head/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_interrupts.c	Sat Jul 26 21:32:03 2014	(r269146)
@@ -142,6 +142,21 @@ ar9300_get_pending_interrupts(
         sync_en_def = AR9340_INTR_SYNC_DEFAULT;
     }
 
+    /* Store away the async and sync cause registers */
+    /* XXX Do this before the filtering done below */
+#ifdef	AH_INTERRUPT_DEBUGGING
+	ah->ah_intrstate[0] = OS_REG_READ(ah, AR_ISR);
+	ah->ah_intrstate[1] = OS_REG_READ(ah, AR_ISR_S0);
+	ah->ah_intrstate[2] = OS_REG_READ(ah, AR_ISR_S1);
+	ah->ah_intrstate[3] = OS_REG_READ(ah, AR_ISR_S2);
+	ah->ah_intrstate[4] = OS_REG_READ(ah, AR_ISR_S3);
+	ah->ah_intrstate[5] = OS_REG_READ(ah, AR_ISR_S4);
+	ah->ah_intrstate[6] = OS_REG_READ(ah, AR_ISR_S5);
+
+	/* XXX double reading? */
+	ah->ah_syncstate = OS_REG_READ(ah, AR_HOSTIF_REG(ah, AR_INTR_SYNC_CAUSE));
+#endif
+
     sync_cause =
         OS_REG_READ(ah, AR_HOSTIF_REG(ah, AR_INTR_SYNC_CAUSE)) &
         (sync_en_def | AR_INTR_SYNC_MASK_GPIO);


More information about the svn-src-all mailing list