: 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