summaryrefslogtreecommitdiffstats
path: root/sys/dev/aic7xxx
diff options
context:
space:
mode:
authorgibbs <gibbs@FreeBSD.org>1996-01-05 16:11:49 +0000
committergibbs <gibbs@FreeBSD.org>1996-01-05 16:11:49 +0000
commit4962a93b457837ef2b1bbd73ccd3a2141e76be9c (patch)
treed09174493286eec160b34b5eaa1b49e477758276 /sys/dev/aic7xxx
parenta6e4a982340872990046f82625c723d6823c3da1 (diff)
downloadFreeBSD-src-4962a93b457837ef2b1bbd73ccd3a2141e76be9c.zip
FreeBSD-src-4962a93b457837ef2b1bbd73ccd3a2141e76be9c.tar.gz
Bring back the more heavy-weight version of the mesgin inb routines. Davidg's
testing made me think that some of the checks were superfluous, but wcarchive (and Amancio) know better.
Diffstat (limited to 'sys/dev/aic7xxx')
-rw-r--r--sys/dev/aic7xxx/aic7xxx.seq16
1 files changed, 12 insertions, 4 deletions
diff --git a/sys/dev/aic7xxx/aic7xxx.seq b/sys/dev/aic7xxx/aic7xxx.seq
index aeddef9..1aa154c 100644
--- a/sys/dev/aic7xxx/aic7xxx.seq
+++ b/sys/dev/aic7xxx/aic7xxx.seq
@@ -880,14 +880,22 @@ mk_mesg1:
*/
inb_next:
- mov NONE,SCSIDATL /*dummy read from latch to ACK*/
-inb_first:
+ call inb_last
+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:
- mov NONE,SCSIDATL ret /*dummy read from latch to ACK*/
+ clr STCNT2
+ clr STCNT1
+ 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
+
mesgin_phasemis:
OpenPOWER on IntegriCloud