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>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199901280111.RAA81035>