On Mon, Feb 11, 2013 at 4:08 PM, Yinghai Lu [off-list ref] wrote:
On Mon, Feb 11, 2013 at 2:41 PM, Bjorn Helgaas [off-list ref] wrote:
quoted
[+cc linux-acpi, linux-pci]
The _PRT describes motherboard interrupt wiring, which has nothing to
do with PCI bus numbers. Our current drivers/acpi/pci_irq.c caches
the PCI bus number along with the _PRT, and I think that's a mistake.
The bus number binding means acpi_pci_irq_add_prt() has to happen
after enumerating everything below a bridge, and it will prevent us
from doing any bus number reassignment for hotplug.
I think we should remove the bus numbers from the cached _PRT (or
maybe even remove the _PRT caching completely). When we enable a PCI
device's IRQ, we should search up the PCI device tree looking for a
_PRT associated with each node, and applying normal PCI bridge
swizzling when we don't find a _PRT. I think this can be done without
using PCI bus numbers at all.
Agreed, will give it try to remove the _PRT caching completely.
Please check attached patch that removes _PRT caching.
Thanks
Yinghai