Hi Bjorn, On Wed, 4 Dec 2024 15:48:52 -0600 Bjorn Helgaas <helgaas@xxxxxxxxxx> wrote: > 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/ Will be fix in the next iteration. > > > +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? Yes indeed. Will be change in the next iteration. Best regards, Hervé