summaryrefslogtreecommitdiffstats
path: root/sys/dev/aic7xxx
diff options
context:
space:
mode:
authorgibbs <gibbs@FreeBSD.org>1996-01-09 16:14:03 +0000
committergibbs <gibbs@FreeBSD.org>1996-01-09 16:14:03 +0000
commit9da24e43b6ceee23cbe53598c9c84c91098af9fa (patch)
treed2161d61fd949694195444c54f67adc756f9fca8 /sys/dev/aic7xxx
parent29ac274c874cae91fc174553b4c1927bbcafdadb (diff)
downloadFreeBSD-src-9da24e43b6ceee23cbe53598c9c84c91098af9fa.zip
FreeBSD-src-9da24e43b6ceee23cbe53598c9c84c91098af9fa.tar.gz
Change the inb and outb routines slightly. It seems that waiting for
SPIORDY after polling REQINIT is a bad idea.
Diffstat (limited to 'sys/dev/aic7xxx')
-rw-r--r--sys/dev/aic7xxx/aic7xxx.seq18
1 files changed, 5 insertions, 13 deletions
diff --git a/sys/dev/aic7xxx/aic7xxx.seq b/sys/dev/aic7xxx/aic7xxx.seq
index d9c1365..357ec1b 100644
--- a/sys/dev/aic7xxx/aic7xxx.seq
+++ b/sys/dev/aic7xxx/aic7xxx.seq
@@ -512,12 +512,8 @@ p_mesgout_loop:
cmp DINDEX,1 jne p_mesgout_outb /* last byte? */
mvi CLRSINT1,CLRATNO /* drop ATN */
p_mesgout_outb:
- or SXFRCTL0, CLRSTCNT
- mvi STCNT0, 1
dec DINDEX
mov SCSIDATL,SINDIR
-p_mesgout_outb_wait:
- test SSTAT0,SDONE jz p_mesgout_outb_wait
p_mesgout4:
test DINDEX,0xff jnz p_mesgout_loop
@@ -885,19 +881,15 @@ mk_mesg1:
*/
inb_next:
- call inb_last
-inb_first:
+ mov NONE,SCSIDATL /*dummy read from latch to ACK*/
+inb_next_wait:
test SSTAT1,PHASEMIS jnz mesgin_phasemis
- test SSTAT0,SPIORDY jz inb_first /* wait for next byte */
+ test SSTAT0,SPIORDY jz inb_next_wait /* wait for next byte */
+inb_first:
mov DINDEX,SINDEX
mov DINDIR,SCSIBUSL ret /*read byte directly from bus*/
inb_last:
- or SXFRCTL0,CLRSTCNT
- mvi STCNT0,0x01
- mov NONE,SCSIDATL /*dummy read from latch to ACK*/
-inb_last_wait:
- test SSTAT0,SDONE jz inb_last_wait /* Wait for completion */
- ret
+ mov NONE,SCSIDATL ret /*dummy read from latch to ACK*/
mesgin_phasemis:
/*
OpenPOWER on IntegriCloud