int cpqhp_configure_device (struct controller* ctrl, struct pci_func* func)
 {
-       unsigned char bus;
        struct pci_bus *child;
        int num;
 
        }
 
        if (func->pci_dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) {
-               int max;
-               pci_read_config_byte(func->pci_dev, PCI_SECONDARY_BUS, &bus);
-               child = (struct pci_bus*) pci_add_new_bus(func->pci_dev->bus, (func->pci_dev), bus);
-               max = pci_do_scan_bus(child);
-               pci_bus_update_busn_res_end(child, max);
+               pci_hp_add_bridge(func->pci_dev);
+               child = func->pci_dev->subordinate;
+               if (child)
+                       pci_bus_add_devices(child);
        }
 
        pci_dev_put(func->pci_dev);