diff options
Diffstat (limited to 'drivers/pci/of.c')
-rw-r--r-- | drivers/pci/of.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/pci/of.c b/drivers/pci/of.c index 73d5adec0a28..bc7b27a28795 100644 --- a/drivers/pci/of.c +++ b/drivers/pci/of.c | |||
@@ -22,12 +22,15 @@ void pci_set_of_node(struct pci_dev *dev) | |||
22 | return; | 22 | return; |
23 | dev->dev.of_node = of_pci_find_child_device(dev->bus->dev.of_node, | 23 | dev->dev.of_node = of_pci_find_child_device(dev->bus->dev.of_node, |
24 | dev->devfn); | 24 | dev->devfn); |
25 | if (dev->dev.of_node) | ||
26 | dev->dev.fwnode = &dev->dev.of_node->fwnode; | ||
25 | } | 27 | } |
26 | 28 | ||
27 | void pci_release_of_node(struct pci_dev *dev) | 29 | void pci_release_of_node(struct pci_dev *dev) |
28 | { | 30 | { |
29 | of_node_put(dev->dev.of_node); | 31 | of_node_put(dev->dev.of_node); |
30 | dev->dev.of_node = NULL; | 32 | dev->dev.of_node = NULL; |
33 | dev->dev.fwnode = NULL; | ||
31 | } | 34 | } |
32 | 35 | ||
33 | void pci_set_bus_of_node(struct pci_bus *bus) | 36 | void pci_set_bus_of_node(struct pci_bus *bus) |
@@ -41,13 +44,18 @@ void pci_set_bus_of_node(struct pci_bus *bus) | |||
41 | if (node && of_property_read_bool(node, "external-facing")) | 44 | if (node && of_property_read_bool(node, "external-facing")) |
42 | bus->self->untrusted = true; | 45 | bus->self->untrusted = true; |
43 | } | 46 | } |
47 | |||
44 | bus->dev.of_node = node; | 48 | bus->dev.of_node = node; |
49 | |||
50 | if (bus->dev.of_node) | ||
51 | bus->dev.fwnode = &bus->dev.of_node->fwnode; | ||
45 | } | 52 | } |
46 | 53 | ||
47 | void pci_release_bus_of_node(struct pci_bus *bus) | 54 | void pci_release_bus_of_node(struct pci_bus *bus) |
48 | { | 55 | { |
49 | of_node_put(bus->dev.of_node); | 56 | of_node_put(bus->dev.of_node); |
50 | bus->dev.of_node = NULL; | 57 | bus->dev.of_node = NULL; |
58 | bus->dev.fwnode = NULL; | ||
51 | } | 59 | } |
52 | 60 | ||
53 | struct device_node * __weak pcibios_get_phb_of_node(struct pci_bus *bus) | 61 | struct device_node * __weak pcibios_get_phb_of_node(struct pci_bus *bus) |