]> Pileus Git - ~andy/linux/commitdiff
PCI/ACPI: Use DEVICE_ACPI_HANDLE rather than searching acpi_pci_roots
authorYinghai Lu <yinghai@kernel.org>
Mon, 24 Sep 2012 20:51:23 +0000 (14:51 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 24 Sep 2012 20:51:23 +0000 (14:51 -0600)
When we bind a device to an ACPI handle, the handle is stored in
dev->archdata.acpi_handle.  For such devices, there's no need to
search the acpi_pci_roots list with acpi_get_pci_rootbridge_handle();
we can just use DEVICE_ACPI_HANDLE(dev) directly.

[bhelgaas: changelog, reorder "if" to avoid negation]
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: Len Brown <lenb@kernel.org>
Cc: linux-acpi@vger.kernel.org
include/linux/pci-acpi.h

index 248fba2af98ab4862b725af4f17aab2caa727d51..9a22b5efb384a5247e57319222ba05f883fed25a 100644 (file)
@@ -22,19 +22,24 @@ extern phys_addr_t acpi_pci_root_get_mcfg_addr(acpi_handle handle);
 static inline acpi_handle acpi_find_root_bridge_handle(struct pci_dev *pdev)
 {
        struct pci_bus *pbus = pdev->bus;
+
        /* Find a PCI root bus */
        while (!pci_is_root_bus(pbus))
                pbus = pbus->parent;
-       return acpi_get_pci_rootbridge_handle(pci_domain_nr(pbus),
-                                             pbus->number);
+
+       return DEVICE_ACPI_HANDLE(pbus->bridge);
 }
 
 static inline acpi_handle acpi_pci_get_bridge_handle(struct pci_bus *pbus)
 {
-       if (!pci_is_root_bus(pbus))
-               return DEVICE_ACPI_HANDLE(&(pbus->self->dev));
-       return acpi_get_pci_rootbridge_handle(pci_domain_nr(pbus),
-                                             pbus->number);
+       struct device *dev;
+
+       if (pci_is_root_bus(pbus))
+               dev = pbus->bridge;
+       else
+               dev = &pbus->self->dev;
+
+       return DEVICE_ACPI_HANDLE(dev);
 }
 #endif