diff options
Diffstat (limited to 'drivers/pci/probe.c')
-rw-r--r-- | drivers/pci/probe.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 48849ffdd672..c28c7b91910e 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c | |||
@@ -52,6 +52,7 @@ static void release_pcibus_dev(struct device *dev) | |||
52 | if (pci_bus->bridge) | 52 | if (pci_bus->bridge) |
53 | put_device(pci_bus->bridge); | 53 | put_device(pci_bus->bridge); |
54 | pci_bus_remove_resources(pci_bus); | 54 | pci_bus_remove_resources(pci_bus); |
55 | pci_release_bus_of_node(pci_bus); | ||
55 | kfree(pci_bus); | 56 | kfree(pci_bus); |
56 | } | 57 | } |
57 | 58 | ||
@@ -588,7 +589,7 @@ static struct pci_bus *pci_alloc_child_bus(struct pci_bus *parent, | |||
588 | 589 | ||
589 | child->self = bridge; | 590 | child->self = bridge; |
590 | child->bridge = get_device(&bridge->dev); | 591 | child->bridge = get_device(&bridge->dev); |
591 | 592 | pci_set_bus_of_node(child); | |
592 | pci_set_bus_speed(child); | 593 | pci_set_bus_speed(child); |
593 | 594 | ||
594 | /* Set up default resource pointers and names.. */ | 595 | /* Set up default resource pointers and names.. */ |
@@ -1038,6 +1039,7 @@ static void pci_release_dev(struct device *dev) | |||
1038 | 1039 | ||
1039 | pci_dev = to_pci_dev(dev); | 1040 | pci_dev = to_pci_dev(dev); |
1040 | pci_release_capabilities(pci_dev); | 1041 | pci_release_capabilities(pci_dev); |
1042 | pci_release_of_node(pci_dev); | ||
1041 | kfree(pci_dev); | 1043 | kfree(pci_dev); |
1042 | } | 1044 | } |
1043 | 1045 | ||
@@ -1157,6 +1159,8 @@ static struct pci_dev *pci_scan_device(struct pci_bus *bus, int devfn) | |||
1157 | dev->vendor = l & 0xffff; | 1159 | dev->vendor = l & 0xffff; |
1158 | dev->device = (l >> 16) & 0xffff; | 1160 | dev->device = (l >> 16) & 0xffff; |
1159 | 1161 | ||
1162 | pci_set_of_node(dev); | ||
1163 | |||
1160 | if (pci_setup_device(dev)) { | 1164 | if (pci_setup_device(dev)) { |
1161 | kfree(dev); | 1165 | kfree(dev); |
1162 | return NULL; | 1166 | return NULL; |
@@ -1409,6 +1413,7 @@ struct pci_bus * pci_create_bus(struct device *parent, | |||
1409 | goto dev_reg_err; | 1413 | goto dev_reg_err; |
1410 | b->bridge = get_device(dev); | 1414 | b->bridge = get_device(dev); |
1411 | device_enable_async_suspend(b->bridge); | 1415 | device_enable_async_suspend(b->bridge); |
1416 | pci_set_bus_of_node(b); | ||
1412 | 1417 | ||
1413 | if (!parent) | 1418 | if (!parent) |
1414 | set_dev_node(b->bridge, pcibus_to_node(b)); | 1419 | set_dev_node(b->bridge, pcibus_to_node(b)); |