PCI: OF: Initialize dev->fwnode appropriately
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 f94277af03
("of/platform: Initialise dev->fwnode appropriately").
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Родитель
fb709b5e1c
Коммит
59b099a6c7
|
@ -22,12 +22,15 @@ void pci_set_of_node(struct pci_dev *dev)
|
||||||
return;
|
return;
|
||||||
dev->dev.of_node = of_pci_find_child_device(dev->bus->dev.of_node,
|
dev->dev.of_node = of_pci_find_child_device(dev->bus->dev.of_node,
|
||||||
dev->devfn);
|
dev->devfn);
|
||||||
|
if (dev->dev.of_node)
|
||||||
|
dev->dev.fwnode = &dev->dev.of_node->fwnode;
|
||||||
}
|
}
|
||||||
|
|
||||||
void pci_release_of_node(struct pci_dev *dev)
|
void pci_release_of_node(struct pci_dev *dev)
|
||||||
{
|
{
|
||||||
of_node_put(dev->dev.of_node);
|
of_node_put(dev->dev.of_node);
|
||||||
dev->dev.of_node = NULL;
|
dev->dev.of_node = NULL;
|
||||||
|
dev->dev.fwnode = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void pci_set_bus_of_node(struct pci_bus *bus)
|
void pci_set_bus_of_node(struct pci_bus *bus)
|
||||||
|
@ -41,13 +44,18 @@ void pci_set_bus_of_node(struct pci_bus *bus)
|
||||||
if (node && of_property_read_bool(node, "external-facing"))
|
if (node && of_property_read_bool(node, "external-facing"))
|
||||||
bus->self->untrusted = true;
|
bus->self->untrusted = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bus->dev.of_node = node;
|
bus->dev.of_node = node;
|
||||||
|
|
||||||
|
if (bus->dev.of_node)
|
||||||
|
bus->dev.fwnode = &bus->dev.of_node->fwnode;
|
||||||
}
|
}
|
||||||
|
|
||||||
void pci_release_bus_of_node(struct pci_bus *bus)
|
void pci_release_bus_of_node(struct pci_bus *bus)
|
||||||
{
|
{
|
||||||
of_node_put(bus->dev.of_node);
|
of_node_put(bus->dev.of_node);
|
||||||
bus->dev.of_node = NULL;
|
bus->dev.of_node = NULL;
|
||||||
|
bus->dev.fwnode = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct device_node * __weak pcibios_get_phb_of_node(struct pci_bus *bus)
|
struct device_node * __weak pcibios_get_phb_of_node(struct pci_bus *bus)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче