Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/netbsd-1-4]: src/sys/dev/tc pullup 1.54->1.55 (mhitch)
details: https://anonhg.NetBSD.org/src/rev/8f2d2f1cbe9a
branches: netbsd-1-4
changeset: 468957:8f2d2f1cbe9a
user: perry <perry%NetBSD.org@localhost>
date: Thu Jun 24 16:09:05 1999 +0000
description:
pullup 1.54->1.55 (mhitch)
diffstat:
sys/dev/tc/asc.c | 23 ++++++++++++-----------
1 files changed, 12 insertions(+), 11 deletions(-)
diffs (46 lines):
diff -r cdea16fac895 -r 8f2d2f1cbe9a sys/dev/tc/asc.c
--- a/sys/dev/tc/asc.c Thu Jun 24 16:01:51 1999 +0000
+++ b/sys/dev/tc/asc.c Thu Jun 24 16:09:05 1999 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: asc.c,v 1.50.4.3 1999/06/23 17:16:46 perry Exp $ */
+/* $NetBSD: asc.c,v 1.50.4.4 1999/06/24 16:09:05 perry Exp $ */
/*-
* Copyright (c) 1992, 1993
@@ -902,25 +902,26 @@
state = &asc->st[asc->target];
switch (ASC_PHASE(status)) {
case SCSI_PHASE_DATAI:
- if ((asc->script - asc_scripts) == SCRIPT_DATA_IN + 1 ||
- (asc->script - asc_scripts) == SCRIPT_CONTINUE_IN) {
+ case SCSI_PHASE_DATAO:
+ ASC_TC_GET(regs, len);
+ fifo = regs->asc_flags & ASC_FLAGS_FIFO_CNT;
+ if (len != 0 && (
+ (asc->script - asc_scripts) == SCRIPT_DATA_IN + 1 ||
+ (asc->script - asc_scripts) == SCRIPT_CONTINUE_IN ||
+ (asc->script - asc_scripts) == SCRIPT_DATA_OUT + 1 ||
+ (asc->script - asc_scripts) == SCRIPT_CONTINUE_OUT)) {
/*
* From the Mach driver:
- * After a reconnect and restart dma in, we
+ * After a reconnect and restart dma in/out, we
* seem to have gotten an interrupt even though
* the DMA is running. The Mach driver just
* ignores this interrupt.
*/
- ASC_TC_GET(regs, len);
- fifo = regs->asc_flags & ASC_FLAGS_FIFO_CNT;
printf("asc_intr: ignoring strange interrupt");
- printf(" tc %d fifo residue %d\n", len, fifo);
+ printf(" tc %d fifo residue %d script %d\n",
+ len, fifo, asc->script - asc_scripts);
goto done;
}
- /* FALLTHROUGH */
- case SCSI_PHASE_DATAO:
- ASC_TC_GET(regs, len);
- fifo = regs->asc_flags & ASC_FLAGS_FIFO_CNT;
printf("asc_intr: data overrun: buflen %d dmalen %d tc %d fifo %d\n",
state->buflen, state->dmalen, len, fifo);
goto abort;
Home |
Main Index |
Thread Index |
Old Index