Re: [PATCH v3 3/4] PCI: of: introduce of_pci_verify_node()

From: Herve Codina

Date: Tue Sep 01 2026 - 02:13:15 EST


Hi Alex,

On Mon, 31 Aug 2026 20:13:36 -0500
Alex Elder <elder@xxxxxxxxxxxx> wrote:

> Commit 407d1a51921e9 ("PCI: Create device tree node for bridge") linked
> the PCI enumeration process together with devicetree, creating a devicetree
> node for discovered PCI bridges. Its successor commit ae9813db1dc5a ("PCI:
> Add quirks to generate device tree node for Xilinx Alveo U50") shows how
> to use a PCI final fixup quirk to also create a devicetree node for a
> non-bridge PCI device. These changes allowed devicetree overlays to
> describe components downstream of a PCI device, by providing a place to
> attach the overlay.
>
> Note that the dynamic devicetree node is only created if the device didn't
> already have an assigned node.
>
> Later, commit aa7b4bbcb3a1d ("arm64: dts: qcom: qcs6490-rb3gen2: Add
> TC9563 PCIe switch node") *pre-defined* devicetree nodes to represent the
> PCI device nodes that would (also) be discovered via the PCI enumeration
> process. The devicetree node in this case is created with the content
> from the DTS file. So when a (host) bridge is done being initialized
> during PCI enumeration, no node is dynamically created (the commits
> mentioned above do not apply).
>
> Ideally, any pre-defined PCI devicetree node would contain exactly the
> same information as whatever the dynamic creation process would produce
> (though it could include more).
>
> However that is not the case for the pre-defined Qualcomm RB3gen2 nodes.
> And in particular, the endpoint (function) nodes include this property:
>
> device_type = "pci";
>
> This is simply wrong; that property is meant only for bridge nodes.
>
> Rob Herring requested that a runtime check to be added to spot this
> specific error, only for non-bridge PCI devices. Herve Codina further
> suggested we ensure that bridge PCI devices *do* define the device_type
> property, with value "pci".
>
> Signed-off-by: Alex Elder <elder@xxxxxxxxxxxx>
> ---
> v3: - Switch a function header to use kernel-doc format
> - Add a warning if a PCI bridge node has no device_type property
>
> drivers/pci/bus.c | 1 +
> drivers/pci/of.c | 31 +++++++++++++++++++++++++++++++
> drivers/pci/pci.h | 3 +++
> 3 files changed, 35 insertions(+)
>

LGTM.

Reviewed-by: Herve Codina <herve.codina@xxxxxxxxxxx>

Best regards,
Hervé