Date: Wed, 27 Jan 1999 17:11:02 -0800 (PST) From: Matthew Dillon <dillon@apollo.backplane.com> To: current@FreeBSD.ORG Subject: Hmmm.. more on the eis ahb bug Message-ID: <199901280111.RAA81035@apollo.backplane.com> References: <199901272244.OAA64912@apollo.backplane.com>
index | next in thread | previous in thread | raw e-mail
Hmmm. Actually, this looks broken either way. It looks like
it is trying to wait until the mbox is empty? But it breaks
out of the loop if the mbox is busy or not-empty, from what
I can tell.
Could an Adaptec SCSI guru take a look at this code ? There's
probably some poor sob running EISA who's scratching his head right
now :-)
-Matt
static __inline void
ahbqueuembox(struct ahb_softc *ahb, u_int32_t mboxval, u_int attn_code)
{
u_int loopmax = 300;
while (--loopmax) {
u_int status;
status = ahb_inb(ahb, HOSTSTAT);
if ((status & HOSTSTAT_MBOX_EMPTY|HOSTSTAT_BUSY)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
!= HOSTSTAT_MBOX_EMPTY)
break;
DELAY(20);
}
if (loopmax == 0)
panic("ahb%ld: adapter not taking commands\n", ahb->unit);
ahb_outl(ahb, MBOXOUT0, mboxval);
ahb_outb(ahb, ATTN, attn_code);
}
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199901280111.RAA81035>
