summaryrefslogtreecommitdiff
path: root/sys/dev/sbus
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2003-06-25 22:38:38 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2003-06-25 22:38:38 +0000
commit4d0adcfa36312cd5316c13da14cbcb6ad8b9f6a1 (patch)
treea5a333a467f4a414b50b44d885f4822e94830427 /sys/dev/sbus
parent284b6fcfefbb7f085ba843809394e881bacf1362 (diff)
Acknowledge the status interrupt in some odd and usually rare cases, which
could render a sparc so crazy it would panic...
Diffstat (limited to 'sys/dev/sbus')
-rw-r--r--sys/dev/sbus/stp4020.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/sys/dev/sbus/stp4020.c b/sys/dev/sbus/stp4020.c
index df31f43b526..f00b8996b36 100644
--- a/sys/dev/sbus/stp4020.c
+++ b/sys/dev/sbus/stp4020.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: stp4020.c,v 1.8 2003/06/25 22:33:18 mickey Exp $ */
+/* $OpenBSD: stp4020.c,v 1.9 2003/06/25 22:38:37 miod Exp $ */
/* $NetBSD: stp4020.c,v 1.23 2002/06/01 23:51:03 lukem Exp $ */
/*-
@@ -462,6 +462,22 @@ stp4020_statintr(arg)
h->sock));
r = 1;
}
+
+ if ((v & STP4020_ISR0_SCINT) != 0) {
+ DPRINTF(("stp4020[%d]: Status change\n",
+ h->sock));
+ r = 1;
+ }
+
+ /*
+ * Not an interrupt flag per se, but interrupts occur when
+ * it is asserted, at least on sparc.
+ */
+ if ((v & STP4020_ISR0_WAITST) != 0) {
+ DPRINTF(("stp4020[%d]: Wait signal\n",
+ h->sock));
+ r = 1;
+ }
}
return (r);