ACPI: eviscerate pci_bind.c

Now that we can dynamically convert an ACPI CA handle to a
struct pci_dev at runtime, there's no need to statically bind
them during boot.

acpi_pci_bind/unbind are vastly simplified, and are only used
to evaluate _PRT methods on P2P bridges and non-bridge children.

This patch also changes the time-space tradeoff ever so slightly.

Looking up the ACPI-PCI binding is never in the performance path, and by
eliminating this caching, we save 24 bytes for each _ADR device in the
ACPI namespace.

This patch lays further groundwork to eventually eliminate
the acpi_driver_ops.bind callback.

Signed-off-by: Alex Chiang <[email protected]>
Acked-by: Bjorn Helgaas <[email protected]>
Signed-off-by: Len Brown <[email protected]>
This commit is contained in:
Alexander Chiang 2009-06-10 19:55:30 +00:00 • committed by Len Brown
commit 499650de69
3 changed files with 39 additions and 211 deletions

View file

@ -100,8 +100,7 @@ struct pci_bus;
struct pci_dev *acpi_get_pci_dev(acpi_handle);
acpi_status acpi_get_pci_id(acpi_handle handle, struct acpi_pci_id *id);
int acpi_pci_bind_root(struct acpi_device *device, struct acpi_pci_id *id,
struct pci_bus *bus);
int acpi_pci_bind_root(struct acpi_device *device);
/* Arch-defined function to add a bus to the system */