Re: [PATCH v3 7/8] of: property: fw_devlink: Follow clock nexus maps
From: Herve Codina
Date: Tue Oct 20 2026 - 10:35:24 EST
Hi Ernest,
On Tue, 20 Oct 2026 15:00:18 +0200
Ernest Van Hoecke <ernestvanhoecke@xxxxxxxxx> wrote:
> From: Ernest Van Hoecke <ernest.vanhoecke@xxxxxxxxxxx>
>
> Clock consumers use of_parse_phandle_with_args_map() to resolve
> specifiers through clock-map properties. fw_devlink instead parses the
> clocks property as a direct phandle reference, so it records the nexus
> node as the supplier rather than the mapped clock provider.
>
> A nexus is a translation node, not the clock provider, and need not be
> populated as a device. The resulting fwnode link can therefore remain
> unresolved and indefinitely defer the consumer while
> device_links_check_suppliers() waits for the nexus.
>
> Use the map-aware parser for clocks so fw_devlink resolves the same
> provider as the clock consumer API. Direct clock references continue to
> work because the map-aware parser returns the original provider when no
> clock-map property is present.
>
> Fixes: aacc54c67869 ("clk: Add support for clock nexus dt bindings")
> Link: https://lore.kernel.org/all/20260807-schneider-v7-2-rc1-eip201-upstream-v5-0-8785f9531cf0@xxxxxxxxxxx/
> Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@xxxxxxxxxxx>
> ---
> aacc54c67869 ("clk: Add support for clock nexus dt bindings") has been
> in clk-next and linux-next with the same hash since next-20260907. There
> is no build-time dependency on it, but this patch should not reach
> mainline before it.
> ---
> drivers/of/property.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/of/property.c b/drivers/of/property.c
> index 53301cdac6a9..2388d607136f 100644
> --- a/drivers/of/property.c
> +++ b/drivers/of/property.c
> @@ -1422,7 +1422,7 @@ struct supplier_bindings {
> u8 fwlink_flags;
> };
>
> -DEFINE_SIMPLE_PROP(clocks, "clocks", "#clock-cells")
> +DEFINE_SIMPLE_NEXUS_PROP(clocks, "clocks", "clock")
> DEFINE_SIMPLE_PROP(interconnects, "interconnects", "#interconnect-cells")
> DEFINE_SIMPLE_PROP(iommus, "iommus", "#iommu-cells")
> DEFINE_SIMPLE_PROP(mboxes, "mboxes", "#mbox-cells")
>
Reviewed-by: Herve Codina <herve.codina@xxxxxxxxxxx>
Best regards,
Hervé