summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authormhitch <mhitch@NetBSD.org>1999-06-13 17:21:29 +0000
committermhitch <mhitch@NetBSD.org>1999-06-13 17:21:29 +0000
commitcff0f6b1e4c021e82795467b183aa8adee3f6502 (patch)
tree5e39ebd7df376e3717418906effd603d93731906 /sys/dev
parentc867e93faeddd92bb1cf2a8156aa313557f154ae (diff)
Don't pre-load the identify message into the fifo just just before the command register
is written. This significantly reduces, if not eliminates, the problem reported in PR#5510. It stops the problem on my 5000/200, and two other people have verified that it fixes the problem on their 5000/200s. I'm waiting for confirmation from the PR originator before closing the PR.
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/tc/asc.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/dev/tc/asc.c b/sys/dev/tc/asc.c
index b762de6d2c9..dd893bc9eba 100644
--- a/sys/dev/tc/asc.c
+++ b/sys/dev/tc/asc.c
@@ -1,4 +1,4 @@
-/* $NetBSD: asc.c,v 1.53 1999/04/25 03:02:05 simonb Exp $ */
+/* $NetBSD: asc.c,v 1.54 1999/06/13 17:21:29 mhitch Exp $ */
/*-
* Copyright (c) 1992, 1993
@@ -753,10 +753,6 @@ asc_startcmd(asc, target)
asc_logp = asc_log;
#endif
- /* preload the FIFO with the message to be sent */
- regs->asc_fifo = SCSI_DIS_REC_IDENTIFY;
- tc_mb();
-
/* initialize the DMA */
len = (*asc->dma_start)(asc, state, scsicmd->cmd, ASCDMA_WRITE,
len, 0);
@@ -777,6 +773,10 @@ asc_startcmd(asc, target)
return;
}
+ /* preload the FIFO with the message to be sent */
+ regs->asc_fifo = SCSI_DIS_REC_IDENTIFY;
+ tc_mb();
+
if (state->flags & TRY_SYNC)
regs->asc_cmd = len = ASC_CMD_SEL_ATN_STOP;
else