summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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