diff options
| author | mhitch <mhitch@NetBSD.org> | 1999-06-13 17:21:29 +0000 |
|---|---|---|
| committer | mhitch <mhitch@NetBSD.org> | 1999-06-13 17:21:29 +0000 |
| commit | cff0f6b1e4c021e82795467b183aa8adee3f6502 (patch) | |
| tree | 5e39ebd7df376e3717418906effd603d93731906 /sys | |
| parent | c867e93faeddd92bb1cf2a8156aa313557f154ae (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')
| -rw-r--r-- | sys/dev/tc/asc.c | 10 |
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 |
