Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/dev/ic enet dma: claim interrupt as appropriate.
details: https://anonhg.NetBSD.org/src/rev/48d154835e2d
branches: trunk
changeset: 494254:48d154835e2d
user: pk <pk%NetBSD.org@localhost>
date: Tue Jul 04 14:58:36 2000 +0000
description:
enet dma: claim interrupt as appropriate.
diffstat:
sys/dev/ic/lsi64854.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diffs (32 lines):
diff -r 1bfd09d83a97 -r 48d154835e2d sys/dev/ic/lsi64854.c
--- a/sys/dev/ic/lsi64854.c Tue Jul 04 14:47:58 2000 +0000
+++ b/sys/dev/ic/lsi64854.c Tue Jul 04 14:58:36 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: lsi64854.c,v 1.10 2000/06/12 05:25:48 mrg Exp $ */
+/* $NetBSD: lsi64854.c,v 1.11 2000/07/04 14:58:36 pk Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -455,9 +455,13 @@
char bits[64];
u_int32_t csr;
static int dodrain = 0;
+ int rv;
csr = L64854_GCSR(sc);
+ /* If the DMA logic shows an interrupt, claim it */
+ rv = ((csr & E_INT_PEND) != 0) ? 1 : 0;
+
if (csr & (E_ERR_PEND|E_SLAVE_ERR)) {
printf("%s: error: csr=%s\n", sc->sc_dev.dv_xname,
bitmask_snprintf(csr, EDMACSR_BITS, bits,sizeof(bits)));
@@ -478,7 +482,7 @@
delay(1);
}
- return (*sc->sc_intrchain)(sc->sc_intrchainarg);
+ return (rv | (*sc->sc_intrchain)(sc->sc_intrchainarg));
}
/*
Home |
Main Index |
Thread Index |
Old Index