diff options
author | 2001-07-27 15:30:42 +0000 | |
---|---|---|
committer | 2001-07-27 15:30:42 +0000 | |
commit | 3d306f2b771a952ba58753348367c8f1b196c6a2 (patch) | |
tree | 97379a77694d83ebb8e49e0ddc9e8bbc02a8d72d | |
parent | Allow mmap. Not really working correctly yet, but almost. (diff) | |
download | wireguard-openbsd-3d306f2b771a952ba58753348367c8f1b196c6a2.tar.xz wireguard-openbsd-3d306f2b771a952ba58753348367c8f1b196c6a2.zip |
Change how interrupts are acknowledged -- this is how the specification say
they should be acknowledged, and makes things work under VMware without the
timeout problems. miod@ ok
-rw-r--r-- | sys/dev/ic/am7990.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/sys/dev/ic/am7990.c b/sys/dev/ic/am7990.c index 85a4a579819..6633700cf5f 100644 --- a/sys/dev/ic/am7990.c +++ b/sys/dev/ic/am7990.c @@ -1,4 +1,4 @@ -/* $OpenBSD: am7990.c,v 1.26 2001/06/27 06:34:39 kjc Exp $ */ +/* $OpenBSD: am7990.c,v 1.27 2001/07/27 15:30:42 tholo Exp $ */ /* $NetBSD: am7990.c,v 1.22 1996/10/13 01:37:19 christos Exp $ */ /*- @@ -674,19 +674,14 @@ am7990_intr(arg) if ((isr & LE_C0_INTR) == 0) return (0); -#ifdef __vax__ /* - * DEC needs this write order to the registers, don't know - * the results on other arch's. Ragge 991029 + * After receiving an interrupt, we need to toggle the interrupt + * enable bit in order to keep receiving them (some chips works + * without this, some do not) */ - isr &= ~LE_C0_INEA; - (*sc->sc_wrcsr)(sc, LE_CSR0, isr); + (*sc->sc_wrcsr)(sc, LE_CSR0, isr & ~LE_C0_INEA); (*sc->sc_wrcsr)(sc, LE_CSR0, LE_C0_INEA); -#else - (*sc->sc_wrcsr)(sc, LE_CSR0, - isr & (LE_C0_INEA | LE_C0_BABL | LE_C0_CERR | LE_C0_MISS | LE_C0_MERR | - LE_C0_RINT | LE_C0_TINT | LE_C0_IDON)); -#endif + if (isr & LE_C0_ERR) { if (isr & LE_C0_BABL) { #ifdef LEDEBUG |