aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Hibma <n_hibma@FreeBSD.org>2001-08-21 22:39:04 +0000
committerNick Hibma <n_hibma@FreeBSD.org>2001-08-21 22:39:04 +0000
commit83429be9b0fbf0af9b886478e9d8be100cb8c0b3 (patch)
treebb46a90b072d93423a244a15a63f9f4d84d20309
parent0bd2b0976103b34f2c753e70a50d68f0df6d8319 (diff)
downloadsrc-83429be9b0fbf0af9b886478e9d8be100cb8c0b3.tar.gz
src-83429be9b0fbf0af9b886478e9d8be100cb8c0b3.zip
Find spurious interrupts.
Notes
Notes: svn path=/head/; revision=82114
-rw-r--r--sys/dev/usb/ohci.c2
-rw-r--r--sys/dev/usb/uhci.c12
2 files changed, 11 insertions, 3 deletions
diff --git a/sys/dev/usb/ohci.c b/sys/dev/usb/ohci.c
index 686f59ce9df7..961088f1be58 100644
--- a/sys/dev/usb/ohci.c
+++ b/sys/dev/usb/ohci.c
@@ -1036,6 +1036,8 @@ ohci_intr1(sc)
if (intrs == 0) {
/* nothing to be done ?! */
+ printf("%s: interrupt, but not for us\n",
+ USBDEVNAME(sc->sc_bus.bdev));
return (0);
}
diff --git a/sys/dev/usb/uhci.c b/sys/dev/usb/uhci.c
index 761a45879e76..ff6220aa072b 100644
--- a/sys/dev/usb/uhci.c
+++ b/sys/dev/usb/uhci.c
@@ -934,8 +934,11 @@ uhci_intr(void *arg)
#endif
status = UREAD2(sc, UHCI_STS);
- if (status == 0) /* The interrupt was not for us. */
+ if (status == 0) { /* The interrupt was not for us. */
+ printf("%s: interrupt, but not for us\n",
+ USBDEVNAME(sc->sc_bus.bdev));
return (0);
+ }
#if defined(DIAGNOSTIC) && defined(__NetBSD__)
if (sc->sc_suspend != PWR_RESUME)
@@ -966,10 +969,13 @@ uhci_intr(void *arg)
USBDEVNAME(sc->sc_bus.bdev));
}
- if (ack) /* acknowledge the ints */
+ if (ack) { /* acknowledge the ints */
UWRITE2(sc, UHCI_STS, ack);
- else /* nothing to acknowledge */
+ } else { /* nothing to acknowledge */
+ printf("%s: UHCI interrupt, STS = 0x%04x, but ack == 0\n",
+ USBDEVNAME(sc->sc_bus.bdev), status);
return (0);
+ }
sc->sc_bus.intr_context++;
sc->sc_bus.no_intrs++;