Message ID | 20181012145917.6840-5-jean-philippe.brucker@arm.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
Series | Add virtio-iommu driver | expand |
On Fri, Oct 12, 2018 at 03:59:14PM +0100, Jean-Philippe Brucker wrote: > For PCI devices that have an OF node, set the fwnode as well. This way > drivers that rely on fwnode don't need the special case described by > commit f94277af03ea ("of/platform: Initialise dev->fwnode appropriately"). > > Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com> Acked-by: Bjorn Helgaas <bhelgaas@google.com> > --- > drivers/pci/of.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/pci/of.c b/drivers/pci/of.c > index 2f5015bdb256..8026417fab38 100644 > --- a/drivers/pci/of.c > +++ b/drivers/pci/of.c > @@ -21,12 +21,15 @@ void pci_set_of_node(struct pci_dev *dev) > return; > dev->dev.of_node = of_pci_find_child_device(dev->bus->dev.of_node, > dev->devfn); > + if (dev->dev.of_node) > + dev->dev.fwnode = &dev->dev.of_node->fwnode; > } > > void pci_release_of_node(struct pci_dev *dev) > { > of_node_put(dev->dev.of_node); > dev->dev.of_node = NULL; > + dev->dev.fwnode = NULL; > } > > void pci_set_bus_of_node(struct pci_bus *bus) > @@ -35,12 +38,16 @@ void pci_set_bus_of_node(struct pci_bus *bus) > bus->dev.of_node = pcibios_get_phb_of_node(bus); > else > bus->dev.of_node = of_node_get(bus->self->dev.of_node); > + > + if (bus->dev.of_node) > + bus->dev.fwnode = &bus->dev.of_node->fwnode; > } > > void pci_release_bus_of_node(struct pci_bus *bus) > { > of_node_put(bus->dev.of_node); > bus->dev.of_node = NULL; > + bus->dev.fwnode = NULL; > } > > struct device_node * __weak pcibios_get_phb_of_node(struct pci_bus *bus) > -- > 2.19.1 >
diff --git a/drivers/pci/of.c b/drivers/pci/of.c index 2f5015bdb256..8026417fab38 100644 --- a/drivers/pci/of.c +++ b/drivers/pci/of.c @@ -21,12 +21,15 @@ void pci_set_of_node(struct pci_dev *dev) return; dev->dev.of_node = of_pci_find_child_device(dev->bus->dev.of_node, dev->devfn); + if (dev->dev.of_node) + dev->dev.fwnode = &dev->dev.of_node->fwnode; } void pci_release_of_node(struct pci_dev *dev) { of_node_put(dev->dev.of_node); dev->dev.of_node = NULL; + dev->dev.fwnode = NULL; } void pci_set_bus_of_node(struct pci_bus *bus) @@ -35,12 +38,16 @@ void pci_set_bus_of_node(struct pci_bus *bus) bus->dev.of_node = pcibios_get_phb_of_node(bus); else bus->dev.of_node = of_node_get(bus->self->dev.of_node); + + if (bus->dev.of_node) + bus->dev.fwnode = &bus->dev.of_node->fwnode; } void pci_release_bus_of_node(struct pci_bus *bus) { of_node_put(bus->dev.of_node); bus->dev.of_node = NULL; + bus->dev.fwnode = NULL; } struct device_node * __weak pcibios_get_phb_of_node(struct pci_bus *bus)
For PCI devices that have an OF node, set the fwnode as well. This way drivers that rely on fwnode don't need the special case described by commit f94277af03ea ("of/platform: Initialise dev->fwnode appropriately"). Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com> --- drivers/pci/of.c | 7 +++++++ 1 file changed, 7 insertions(+)