OSDN Git Service

PCI: pciehp: use generic pci_hp_add_bridge()
authorYinghai Lu <yinghai@kernel.org>
Fri, 18 May 2012 01:58:41 +0000 (18:58 -0700)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 13 Jun 2012 21:42:26 +0000 (15:42 -0600)
Use the new generic pci_hp_add_bridge() interface.

[bhelgaas: split "add generic pci_hp_add_bridge()" into a separate patch]
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/hotplug/pciehp_pci.c

index b898f06..09cecaf 100644 (file)
 #include "../pci.h"
 #include "pciehp.h"
 
-static int __ref pciehp_add_bridge(struct pci_dev *dev)
-{
-       struct pci_bus *parent = dev->bus;
-       int pass, busnr, start = parent->busn_res.start;
-       int end = parent->busn_res.end;
-
-       for (busnr = start; busnr <= end; busnr++) {
-               if (!pci_find_bus(pci_domain_nr(parent), busnr))
-                       break;
-       }
-       if (busnr-- > end) {
-               err("No bus number available for hot-added bridge %s\n",
-                               pci_name(dev));
-               return -1;
-       }
-       for (pass = 0; pass < 2; pass++)
-               busnr = pci_scan_bridge(parent, dev, busnr, pass);
-       if (!dev->subordinate)
-               return -1;
-
-       return 0;
-}
-
 int pciehp_configure_device(struct slot *p_slot)
 {
        struct pci_dev *dev;
@@ -85,9 +62,8 @@ int pciehp_configure_device(struct slot *p_slot)
                if (!dev)
                        continue;
                if ((dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) ||
-                               (dev->hdr_type == PCI_HEADER_TYPE_CARDBUS)) {
-                       pciehp_add_bridge(dev);
-               }
+                               (dev->hdr_type == PCI_HEADER_TYPE_CARDBUS))
+                       pci_hp_add_bridge(dev);
                pci_dev_put(dev);
        }