mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-18 10:35:55 +00:00
Change the inb and outb routines slightly. It seems that waiting for
SPIORDY after polling REQINIT is a bad idea.
This commit is contained in:
parent
fa913fbd87
commit
bff79954c2
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=13360
@ -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:
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user