On Mon, Dec 02, 2024 at 02:15:18PM +0100, Herve Codina wrote: > PCI devices device-tree nodes can be already created. This was > introduced by commit 407d1a51921e ("PCI: Create device tree node for > bridge"). > > In order to have device-tree nodes related to PCI devices attached on > their PCI root bus (the PCI bus handled by the PCI host bridge), a PCI > root bus device-tree node is needed. This root bus node will be used as > the parent node of the first level devices scanned on the bus. On > device-tree based systems, this PCI root bus device tree node is set to > the node of the related PCI host bridge. The PCI host bridge node is > available in the device-tree used to describe the hardware passed at > boot. > > On non device-tree based system (such as ACPI), a device-tree node for > the PCI host bridge or for the root bus do not exist. Indeed, the PCI > host bridge is not described in a device-tree used at boot simply > because no device-tree are passed at boot. s/do not exist/does not exist/ > +void of_pci_make_host_bridge_node(struct pci_host_bridge *bridge) > +{ > + struct device_node *np = NULL; > + struct of_changeset *cset; > + const char *name; > + int ret; > + > + /* > + * If there is already a device-tree node linked to the PCI bus handled > + * by this bridge (i.e. the PCI root bus), nothing to do. > + */ > + if (pci_bus_to_OF_node(bridge->bus)) > + return; > + > + /* The root bus has no node. Check that the host bridge has no node too */ > + if (bridge->dev.of_node) { > + pr_err("PCI host bridge of_node already set"); Can we use dev_err() here? Bjorn