Re: [PATCH v3 7/8] ACPI, PCI: add hostbridge removal function
From: Yinghai Lu <yinghai@kernel.org>
Date: 2012-09-28 16:19:34
Also in:
linux-pci
On Fri, Sep 28, 2012 at 9:07 AM, Bjorn Helgaas [off-list ref] wrote:
On Thu, Sep 27, 2012 at 2:17 PM, Yinghai Lu [off-list ref] 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.