diff options
author | gibbs <gibbs@FreeBSD.org> | 1996-01-05 16:11:49 +0000 |
---|---|---|
committer | gibbs <gibbs@FreeBSD.org> | 1996-01-05 16:11:49 +0000 |
commit | 4962a93b457837ef2b1bbd73ccd3a2141e76be9c (patch) | |
tree | d09174493286eec160b34b5eaa1b49e477758276 /sys/dev/aic7xxx | |
parent | a6e4a982340872990046f82625c723d6823c3da1 (diff) | |
download | FreeBSD-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.seq | 16 |
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: |