Merge branch 'of-pci' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
[linux-2.6.git] / drivers / pci / probe.c
index bafb3c3..9ab492f 100644 (file)
@@ -52,6 +52,7 @@ static void release_pcibus_dev(struct device *dev)
        if (pci_bus->bridge)
                put_device(pci_bus->bridge);
        pci_bus_remove_resources(pci_bus);
+       pci_release_bus_of_node(pci_bus);
        kfree(pci_bus);
 }
 
@@ -588,7 +589,7 @@ static struct pci_bus *pci_alloc_child_bus(struct pci_bus *parent,
 
        child->self = bridge;
        child->bridge = get_device(&bridge->dev);
-
+       pci_set_bus_of_node(child);
        pci_set_bus_speed(child);
 
        /* Set up default resource pointers and names.. */
@@ -1038,6 +1039,7 @@ static void pci_release_dev(struct device *dev)
 
        pci_dev = to_pci_dev(dev);
        pci_release_capabilities(pci_dev);
+       pci_release_of_node(pci_dev);
        kfree(pci_dev);
 }
 
@@ -1157,6 +1159,8 @@ static struct pci_dev *pci_scan_device(struct pci_bus *bus, int devfn)
        dev->vendor = l & 0xffff;
        dev->device = (l >> 16) & 0xffff;
 
+       pci_set_of_node(dev);
+
        if (pci_setup_device(dev)) {
                kfree(dev);
                return NULL;
@@ -1409,6 +1413,7 @@ struct pci_bus * pci_create_bus(struct device *parent,
                goto dev_reg_err;
        b->bridge = get_device(dev);
        device_enable_async_suspend(b->bridge);
+       pci_set_bus_of_node(b);
 
        if (!parent)
                set_dev_node(b->bridge, pcibus_to_node(b));