Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Jul 2014 21:32:04 +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: r269146 - head/sys/contrib/dev/ath/ath_hal/ar9300
Message-ID:  <201407262132.s6QLW4g2074594@svn.freebsd.org>

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



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