• Len Brown's avatar
    [ACPI] PCI IRQ update (Bjorn Helgaas) · e7d76343
    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
mpparse.c 23.7 KB