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