On Fri, Sep 28, 2012 at 9:07 AM, Bjorn Helgaas <bhelgaas@xxxxxxxxxx> wrote: > On Thu, Sep 27, 2012 at 2:17 PM, Yinghai Lu <yinghai@xxxxxxxxxx> wrote: > Today we have this, which is more complicated than it should be. Note > how we do some ACPI stuff, some PCI stuff, some more ACPI stuff, then > more PCI stuff: > > acpi_pci_root_add > pci_acpi_scan_root > pci_scan_child_bus > acpi_pci_irq_add_prt > acpi_pci_osc_control_set > acpi_pci_root_start > pci_bus_add_devices > > I don't think the ACPI/PCI mixture is anything essential dictated by > the way the hardware or firmware works. I think it's just an artifact > of the current design, and it could be changed. It would be better to > have this: > > acpi_pci_root_add > acpi_pci_irq_add_prt > acpi_pci_osc_control_set > pci_acpi_scan_root > pci_scan_root_bus > pci_scan_child_bus > pci_bus_add_devices > > We can't get to this latter strategy as long as the ACPI interfaces > depend on the struct pci_bus. So the _PRT change is a small thing in > itself, but I do think it helps enable significant improvements in the > future. still to handle to those fallback path like create_bus and scan bus failure. in my for-pci-next branch, with Jiang's patches and mine, now we achieved at acpi_pci_root_add pci_acpi_scan_root pci_scan_root_bus pci_scan_child_bus acpi_pci_osc_control_set pci_bus_add_devices acpi_pci_irq_add_prt is called later during acpi binding that is triggered by adding to device tree. thought os_control set via pci_host_bridge add interface.. with those BUS ADD notification, we can pass bus safely, and without considering about cleanup PRT and OSC setting. -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html