-
Len Brown authored
http://bugme.osdl.org/show_bug.cgi?id=2574 mp_parse_prt() and iosapic_parse_prt() used to allocate all IRQs, whether devices needed them or not. Some devices failed because the this method enabled unused PCI Interrupt Link Devices, which disrupted active link devices. Now the PRT knowledge is pulled out of the arch code and the IRQ allocation and IO-APIC programming is done by pci_enable_device(). This is also a step toward allowing the addition of new root bridges and PRTs at run-time. The architecture supplies unsigned int acpi_register_gsi(u32 gsi, int edge_level, int active_high_low) which is called by acpi_pci_irq_enable(). ACPI supplies all the information from the PRT, and the arch sets up the routing and returns the IRQ it allocated.
e7d76343