Skip site navigation (1)Skip section navigation (2)
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>