DragonFly users List (threaded) for 2005-02
Re: xl device doesn't work with ACPI enabled under -current and -stable
I think I found the issue. Look at this:
found-> vendor=0x10b7, dev=0x9200, revid=0x78
bus=2, slot=0, func=0
class=02-00-00, hdrtype=0x00, mfdev=0
found-> vendor=0x104c, dev=0xac51, revid=0x00
bus=2, slot=1, func=0
class=06-07-00, hdrtype=0x02, mfdev=1
The issue is that slot 0 appears to be configured for irq 11 already.
slot 1 is configured for irq 255 (i.e. unconfigured).
This is causing the pci_alloc_resource() in bus/pci/pci.c to assume
that XL0 is already routed (and it is).
But then when CBB0 comes along, the irq is not routed, so
pci_alloc_resource() calls PCIB_ROUTE_INTERRUPT(). PCIB_ROUTE_INTERRUPT()
has *NO* clue that it *MUST* use irq 11 (because xl0 and cbb0 share the
same int pin), so it goes and allocates irq 3.
Now XL0's irq 11 assignment is wrong.
I think we need to make the PCIB subsystem aware that the intpin is
ALREADY allocated to irq 11. I think what this means is that we have
to call PCIB_ROUTE_INTERRUPT() and we have to add another argument to
the call to pass in intline. Either that or we unconditionally
call PCIB_ROUTE_INTERRUPT() as is and allow it to reassign XL0's