summaryrefslogtreecommitdiff
path: root/sys/dev/ic
diff options
context:
space:
mode:
authorMichael Shalayeff <mickey@cvs.openbsd.org>2002-09-23 06:11:51 +0000
committerMichael Shalayeff <mickey@cvs.openbsd.org>2002-09-23 06:11:51 +0000
commit599d5201247671abd17b9060ce98294913e079b5 (patch)
treeb9e21c0d370563a9a543ac50c31b11fa53497610 /sys/dev/ic
parent0211bba33a8f696c128bf7971d4b1fd45d3dc32f (diff)
make the leds blink (on those machines where we have 'em).
simple logic is to light up the led in the intrhook and dim in the heartbeat always, makes a believable impression. upper four bits represent a cpu usage w/in the last Hz/8 made up from the cp_time[] times.
Diffstat (limited to 'sys/dev/ic')
-rw-r--r--sys/dev/ic/i82596.c20
-rw-r--r--sys/dev/ic/i82596var.h9
2 files changed, 16 insertions, 13 deletions
diff --git a/sys/dev/ic/i82596.c b/sys/dev/ic/i82596.c
index 1ce274fea96..c48f419c259 100644
--- a/sys/dev/ic/i82596.c
+++ b/sys/dev/ic/i82596.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: i82596.c,v 1.11 2002/07/31 02:32:25 mickey Exp $ */
+/* $OpenBSD: i82596.c,v 1.12 2002/09/23 06:11:50 mickey Exp $ */
/* $NetBSD: i82586.c,v 1.18 1998/08/15 04:42:42 mycroft Exp $ */
/*-
@@ -523,12 +523,6 @@ i82596_intr(v)
register u_int status;
register int off;
- /*
- * Implementation dependent interrupt handling.
- */
- if (sc->intrhook)
- (sc->intrhook)(sc, IE_INTR_ENTER);
-
off = IE_SCB_STATUS(sc->scb);
PURGE(sc->bh + off, 2);
bus_space_barrier(sc->bt, sc->bh, off, 2, BUS_SPACE_BARRIER_READ);
@@ -548,13 +542,21 @@ loop:
#endif
i82596_start_cmd(sc, status & IE_ST_WHENCE, 0, 0, 1);
- if (status & (IE_ST_FR | IE_ST_RNR))
+ if (status & (IE_ST_FR | IE_ST_RNR)) {
+ if (sc->intrhook)
+ (sc->intrhook)(sc, IE_INTR_ENRCV);
+
if (i82596_rint(sc, status) != 0)
goto reset;
+ }
+
+ if (status & IE_ST_CX) {
+ if (sc->intrhook)
+ (sc->intrhook)(sc, IE_INTR_ENSND);
- if (status & IE_ST_CX)
if (i82596_tint(sc, status) != 0)
goto reset;
+ }
#ifdef I82596_DEBUG
if ((status & IE_ST_CNA) && (sc->sc_debug & IED_CNA))
diff --git a/sys/dev/ic/i82596var.h b/sys/dev/ic/i82596var.h
index fc6b3a9e304..053ae043b8a 100644
--- a/sys/dev/ic/i82596var.h
+++ b/sys/dev/ic/i82596var.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: i82596var.h,v 1.7 2002/03/14 03:16:04 millert Exp $ */
+/* $OpenBSD: i82596var.h,v 1.8 2002/09/23 06:11:50 mickey Exp $ */
/* $NetBSD: i82586var.h,v 1.10 1998/08/15 04:42:42 mycroft Exp $ */
/*-
@@ -120,9 +120,10 @@
#define IE_MAXMCAST (IE_TBUF_SIZE/6)/* must fit in transmit buffer */
-#define IE_INTR_ENTER 0 /* intr hook called on ISR entry */
-#define IE_INTR_EXIT 1 /* intr hook called on ISR exit */
-#define IE_INTR_LOOP 2 /* intr hook called on ISR loop */
+#define IE_INTR_ENRCV 1 /* receive pkt interrupt */
+#define IE_INTR_ENSND 2 /* send pkt interrupt */
+#define IE_INTR_LOOP 3 /* a loop for next one*/
+#define IE_INTR_EXIT 4 /* done w/ interrupts */
#define IE_CHIP_PROBE 0 /* reset called from chip probe */
#define IE_CARD_RESET 1 /* reset called from card reset */