: wi0: <WaveLan/IEEE> at port 0x100-0x13f irq 3 function 0 config 1 on
: pccard0
: 
: Could that irq sharing be breaking something?  

It could also be that the pccard interrupt routing code (in
src/sys/dev/pccard/pccard.c) is busted.  If you look at it:

static void
pccard_intr(void *arg)
{
        struct pccard_softc *sc = (struct pccard_softc *) arg;
        struct pccard_function *pf;
        STAILQ_FOREACH(pf, &sc->card.pf_head, pf_list) {
                if (pf->intr_handler != NULL) {
                        int reg = pccard_ccr_read(pf, PCCARD_CCR_STATUS);
                        if (reg & PCCARD_CCR_STATUS_INTR) {
                                pccard_ccr_write(pf, PCCARD_CCR_STATUS,
                                    reg & ~PCCARD_CCR_STATUS_INTR);
                                pf->intr_handler(pf->intr_handler_arg);
                        }
                }
        }
}

But if you look at the pccard stnadard, you'll find that the
PCCARD_CCR_STATUS_INTR bit is only defined for MFC cards.  So, try the
following:

static void
pccard_intr(void *arg)
{
        struct pccard_softc *sc = (struct pccard_softc *) arg;
        struct pccard_function *pf;
        STAILQ_FOREACH(pf, &sc->card.pf_head, pf_list) {
                if (pf->intr_handler != NULL) {
                        pf->intr_handler(pf->intr_handler_arg);
                }
        }
}

in its place.

Warner

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to