* [PATCH v2 0/7] of: property: Make fw_devlink follow GPIO, PWM and clock nexus maps
@ 2026-09-10 14:16 Ernest Van Hoecke
2026-09-10 14:16 ` [PATCH v2 1/7] of: property: fw_devlink: Follow GPIO " Ernest Van Hoecke
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Ernest Van Hoecke @ 2026-09-10 14:16 UTC (permalink / raw)
To: Rob Herring, Saravana Kannan
Cc: Miquel Raynal (Schneider Electric), Frank Li, Kieran Bingham,
Pengutronix Kernel Team, Stephen Boyd, Brian Masney,
Linus Walleij, Bartosz Golaszewski, Uwe Kleine-König,
Herve Codina, Greg Kroah-Hartman, Geert Uytterhoeven,
Leonardo Costa, devicetree, linux-clk, linux-gpio, linux-pwm,
linux-kernel, Ernest Van Hoecke, stable
This series fixes an fw_devlink supplier-resolution problem reported by
Leonardo Costa while using a Devicetree nexus to describe GPIO and PWM
resources routed through an LVDS connector. Consumers referencing the
nexus could remain deferred because fw_devlink linked them to the nexus
rather than to the providers selected by gpio-map and pwm-map. [1]
GPIO, PWM and clock consumer APIs use of_parse_phandle_with_args_map()
to resolve specifiers through gpio-map, pwm-map and clock-map
properties. The corresponding fw_devlink parsers use direct phandle
parsing instead. Given a consumer which references a nexus, the consumer
API and fw_devlink therefore resolve the reference to different nodes:
consumer API: consumer -> nexus -> mapped provider
fw_devlink: consumer -> nexus
A nexus is a translation node rather than the resource provider and need
not have a driver. The link to it can consequently remain unresolved and
defer the consumer even though the mapped provider is available.
Make the fw_devlink GPIO, PWM and clock parsers use the same map-aware
resolver as their consumer APIs. The resolver also handles valid direct
references by returning the original provider when no map is present.
Use dedicated exact-name and suffix declaration macros to opt these
bindings into map-aware parsing without changing unrelated property
parsers. Retain GPIO's existing exclusions and compatibility handling.
The regression tests call the OF add_links operation and verify that a
mapped reference creates exactly one link to the final provider, not to
the nexus. They also cover valid direct references. The GPIO tests
exercise all property spellings recognized by fw_devlink, including the
deprecated singular and unprefixed forms.
Tested with:
- The new CONFIG_OF_UNITTEST fw_devlink cases under QEMU/x86_64 all
passed
- W=1 builds on x86_64 and arm64, including the OF unittest data
- Toradex Verdin iMX8M Plus hardware using a connector nexus for the
display GPIO and PWM resources: the display probes successfully
[1] https://lore.kernel.org/all/juuc4af7ndbajcl7gzf4tg5qz2q2j5tt3rvql4jbauradujrre@gc5nbdhhixaf/
Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
---
Changes in v2:
- Split the unit tests into per-resource follow-up commits
- Added clock nexus as well because the clock nexus series was merged:
https://lore.kernel.org/all/20260807-schneider-v7-2-rc1-eip201-upstream-v5-0-8785f9531cf0@bootlin.com/
- Link to v1: https://lore.kernel.org/r/20260902-fw-devlink-nexus-ready-v1-0-68fe1996e78a@toradex.com
---
Ernest Van Hoecke (7):
of: property: fw_devlink: Follow GPIO nexus maps
of: property: fw_devlink: Report unsupported supplier linking
of: unittest: Test fw_devlink with GPIO nexus maps
of: property: fw_devlink: Follow PWM nexus maps
of: unittest: Test fw_devlink with PWM nexus maps
of: property: fw_devlink: Follow clock nexus maps
of: unittest: Test fw_devlink with clock nexus maps
drivers/of/property.c | 53 ++++++++++++++-----
drivers/of/unittest-data/tests-phandle.dtsi | 63 +++++++++++++++++++++++
drivers/of/unittest.c | 79 +++++++++++++++++++++++++++++
3 files changed, 182 insertions(+), 13 deletions(-)
---
base-commit: 91b1b8d437abe0cd83210d8f257b785a63047aa9
change-id: 20260901-fw-devlink-nexus-ready-c859706b019d
Best regards,
--
Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH v2 1/7] of: property: fw_devlink: Follow GPIO nexus maps 2026-09-10 14:16 [PATCH v2 0/7] of: property: Make fw_devlink follow GPIO, PWM and clock nexus maps Ernest Van Hoecke @ 2026-09-10 14:16 ` Ernest Van Hoecke 2026-09-11 7:51 ` Bartosz Golaszewski ` (2 more replies) 2026-09-10 14:16 ` [PATCH v2 4/7] of: property: fw_devlink: Follow PWM " Ernest Van Hoecke 2026-10-13 12:09 ` [PATCH v2 0/7] of: property: Make fw_devlink follow GPIO, PWM and clock " Frieder Schrempf 2 siblings, 3 replies; 9+ messages in thread From: Ernest Van Hoecke @ 2026-09-10 14:16 UTC (permalink / raw) To: Rob Herring, Saravana Kannan Cc: Miquel Raynal (Schneider Electric), Frank Li, Kieran Bingham, Pengutronix Kernel Team, Stephen Boyd, Brian Masney, Linus Walleij, Bartosz Golaszewski, Uwe Kleine-König, Herve Codina, Greg Kroah-Hartman, Geert Uytterhoeven, Leonardo Costa, devicetree, linux-clk, linux-gpio, linux-pwm, linux-kernel, Ernest Van Hoecke, stable From: Ernest Van Hoecke <ernest.vanhoecke@toradex.com> GPIO consumers use of_parse_phandle_with_args_map() to resolve specifiers through gpio-map properties. fw_devlink instead parses GPIO properties as direct phandle references, so it records the nexus node as the supplier rather than the mapped GPIO provider. A nexus is a translation node, not the GPIO 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 all supported GPIO property spellings. This makes fw_devlink resolve the same provider as the GPIO consumer API. Direct GPIO references continue to work because the map-aware parser returns the original provider when no gpio-map property is present. Fixes: 7f00be96f125 ("of: property: Add device link support for interrupt-parent, dmas and -gpio(s)") Reported-by: Leonardo Costa <leonardo.costa@toradex.com> Link: https://lore.kernel.org/all/juuc4af7ndbajcl7gzf4tg5qz2q2j5tt3rvql4jbauradujrre@gc5nbdhhixaf/ Tested-by: Leonardo Costa <leonardo.costa@toradex.com> Cc: stable@vger.kernel.org Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com> --- drivers/of/property.c | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/drivers/of/property.c b/drivers/of/property.c index 72cf12907de0..380df0861ab9 100644 --- a/drivers/of/property.c +++ b/drivers/of/property.c @@ -1311,6 +1311,19 @@ static struct device_node *parse_prop_cells(struct device_node *np, return sup_args.np; } +static struct device_node *parse_nexus_prop(struct device_node *np, + const char *prop_name, int index, + const char *stem_name) +{ + struct of_phandle_args sup_args; + + if (of_parse_phandle_with_args_map(np, prop_name, stem_name, index, + &sup_args)) + return NULL; + + return sup_args.np; +} + #define DEFINE_SIMPLE_PROP(fname, name, cells) \ static struct device_node *parse_##fname(struct device_node *np, \ const char *prop_name, int index) \ @@ -1361,6 +1374,15 @@ static struct device_node *parse_##fname(struct device_node *np, \ return parse_suffix_prop_cells(np, prop_name, index, suffix, cells); \ } +#define DEFINE_SUFFIX_NEXUS_PROP(fname, suffix, stem) \ +static struct device_node *parse_##fname(struct device_node *np, \ + const char *prop_name, int index) \ +{ \ + if (!strends(prop_name, suffix)) \ + return NULL; \ + return parse_nexus_prop(np, prop_name, index, stem); \ +} + /** * struct supplier_bindings - Property parsing functions for suppliers * @@ -1416,7 +1438,7 @@ DEFINE_SIMPLE_PROP(pses, "pses", "#pse-cells") DEFINE_SIMPLE_PROP(power_supplies, "power-supplies", NULL) DEFINE_SIMPLE_PROP(mmc_pwrseq, "mmc-pwrseq", NULL) DEFINE_SUFFIX_PROP(regulators, "-supply", NULL) -DEFINE_SUFFIX_PROP(gpio, "-gpio", "#gpio-cells") +DEFINE_SUFFIX_NEXUS_PROP(gpio, "-gpio", "gpio") static struct device_node *parse_pinctrl_n(struct device_node *np, const char *prop_name, int index) @@ -1436,8 +1458,10 @@ static struct device_node *parse_gpios(struct device_node *np, if (strends(prop_name, ",nr-gpios")) return NULL; - return parse_suffix_prop_cells(np, prop_name, index, "-gpios", - "#gpio-cells"); + if (!strends(prop_name, "-gpios")) + return NULL; + + return parse_nexus_prop(np, prop_name, index, "gpio"); } static struct device_node *parse_iommu_maps(struct device_node *np, @@ -1452,8 +1476,6 @@ static struct device_node *parse_iommu_maps(struct device_node *np, static struct device_node *parse_gpio_compat(struct device_node *np, const char *prop_name, int index) { - struct of_phandle_args sup_args; - if (strcmp(prop_name, "gpio") && strcmp(prop_name, "gpios")) return NULL; @@ -1464,11 +1486,7 @@ static struct device_node *parse_gpio_compat(struct device_node *np, if (of_property_read_bool(np, "gpio-hog")) return NULL; - if (of_parse_phandle_with_args(np, prop_name, "#gpio-cells", index, - &sup_args)) - return NULL; - - return sup_args.np; + return parse_nexus_prop(np, prop_name, index, "gpio"); } static struct device_node *parse_interrupts(struct device_node *np, -- 2.43.0 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/7] of: property: fw_devlink: Follow GPIO nexus maps 2026-09-10 14:16 ` [PATCH v2 1/7] of: property: fw_devlink: Follow GPIO " Ernest Van Hoecke @ 2026-09-11 7:51 ` Bartosz Golaszewski 2026-09-16 17:14 ` Linus Walleij 2026-09-16 17:43 ` Herve Codina 2 siblings, 0 replies; 9+ messages in thread From: Bartosz Golaszewski @ 2026-09-11 7:51 UTC (permalink / raw) To: Ernest Van Hoecke Cc: Miquel Raynal (Schneider Electric), Frank Li, Kieran Bingham, Pengutronix Kernel Team, Stephen Boyd, Brian Masney, Linus Walleij, Bartosz Golaszewski, Uwe Kleine-König, Herve Codina, Greg Kroah-Hartman, Geert Uytterhoeven, Leonardo Costa, devicetree, linux-clk, linux-gpio, linux-pwm, linux-kernel, Ernest Van Hoecke, stable, Rob Herring, Saravana Kannan On Thu, 10 Sep 2026 16:16:42 +0200, Ernest Van Hoecke <ernestvanhoecke@gmail.com> said: > From: Ernest Van Hoecke <ernest.vanhoecke@toradex.com> > > GPIO consumers use of_parse_phandle_with_args_map() to resolve > specifiers through gpio-map properties. fw_devlink instead parses GPIO > properties as direct phandle references, so it records the nexus node as > the supplier rather than the mapped GPIO provider. > > A nexus is a translation node, not the GPIO 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 all supported GPIO property spellings. This > makes fw_devlink resolve the same provider as the GPIO consumer API. > Direct GPIO references continue to work because the map-aware parser > returns the original provider when no gpio-map property is present. > > Fixes: 7f00be96f125 ("of: property: Add device link support for interrupt-parent, dmas and -gpio(s)") > Reported-by: Leonardo Costa <leonardo.costa@toradex.com> > Link: https://lore.kernel.org/all/juuc4af7ndbajcl7gzf4tg5qz2q2j5tt3rvql4jbauradujrre@gc5nbdhhixaf/ > Tested-by: Leonardo Costa <leonardo.costa@toradex.com> > Cc: stable@vger.kernel.org > Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com> > --- Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com> ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/7] of: property: fw_devlink: Follow GPIO nexus maps 2026-09-10 14:16 ` [PATCH v2 1/7] of: property: fw_devlink: Follow GPIO " Ernest Van Hoecke 2026-09-11 7:51 ` Bartosz Golaszewski @ 2026-09-16 17:14 ` Linus Walleij 2026-09-16 17:43 ` Herve Codina 2 siblings, 0 replies; 9+ messages in thread From: Linus Walleij @ 2026-09-16 17:14 UTC (permalink / raw) To: Ernest Van Hoecke Cc: Rob Herring, Saravana Kannan, Miquel Raynal (Schneider Electric), Frank Li, Kieran Bingham, Pengutronix Kernel Team, Stephen Boyd, Brian Masney, Bartosz Golaszewski, Uwe Kleine-König, Herve Codina, Greg Kroah-Hartman, Geert Uytterhoeven, Leonardo Costa, devicetree, linux-clk, linux-gpio, linux-pwm, linux-kernel, Ernest Van Hoecke, stable On Thu, Sep 10, 2026 at 4:16 PM Ernest Van Hoecke <ernestvanhoecke@gmail.com> wrote: > From: Ernest Van Hoecke <ernest.vanhoecke@toradex.com> > > GPIO consumers use of_parse_phandle_with_args_map() to resolve > specifiers through gpio-map properties. fw_devlink instead parses GPIO > properties as direct phandle references, so it records the nexus node as > the supplier rather than the mapped GPIO provider. > > A nexus is a translation node, not the GPIO 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 all supported GPIO property spellings. This > makes fw_devlink resolve the same provider as the GPIO consumer API. > Direct GPIO references continue to work because the map-aware parser > returns the original provider when no gpio-map property is present. > > Fixes: 7f00be96f125 ("of: property: Add device link support for interrupt-parent, dmas and -gpio(s)") > Reported-by: Leonardo Costa <leonardo.costa@toradex.com> > Link: https://lore.kernel.org/all/juuc4af7ndbajcl7gzf4tg5qz2q2j5tt3rvql4jbauradujrre@gc5nbdhhixaf/ > Tested-by: Leonardo Costa <leonardo.costa@toradex.com> > Cc: stable@vger.kernel.org > Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com> Reviewed-by: Linus Walleij <linusw@kernel.org> Yours, Linus Walleij ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/7] of: property: fw_devlink: Follow GPIO nexus maps 2026-09-10 14:16 ` [PATCH v2 1/7] of: property: fw_devlink: Follow GPIO " Ernest Van Hoecke 2026-09-11 7:51 ` Bartosz Golaszewski 2026-09-16 17:14 ` Linus Walleij @ 2026-09-16 17:43 ` Herve Codina 2 siblings, 0 replies; 9+ messages in thread From: Herve Codina @ 2026-09-16 17:43 UTC (permalink / raw) To: Ernest Van Hoecke Cc: Rob Herring, Saravana Kannan, Miquel Raynal (Schneider Electric), Frank Li, Kieran Bingham, Pengutronix Kernel Team, Stephen Boyd, Brian Masney, Linus Walleij, Bartosz Golaszewski, Uwe Kleine-König, Greg Kroah-Hartman, Geert Uytterhoeven, Leonardo Costa, devicetree, linux-clk, linux-gpio, linux-pwm, linux-kernel, Ernest Van Hoecke, stable Hi Ernest, On Thu, 10 Sep 2026 16:16:42 +0200 Ernest Van Hoecke <ernestvanhoecke@gmail.com> wrote: > From: Ernest Van Hoecke <ernest.vanhoecke@toradex.com> > > GPIO consumers use of_parse_phandle_with_args_map() to resolve > specifiers through gpio-map properties. fw_devlink instead parses GPIO > properties as direct phandle references, so it records the nexus node as > the supplier rather than the mapped GPIO provider. > > A nexus is a translation node, not the GPIO 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 all supported GPIO property spellings. This > makes fw_devlink resolve the same provider as the GPIO consumer API. > Direct GPIO references continue to work because the map-aware parser > returns the original provider when no gpio-map property is present. > > Fixes: 7f00be96f125 ("of: property: Add device link support for interrupt-parent, dmas and -gpio(s)") > Reported-by: Leonardo Costa <leonardo.costa@toradex.com> > Link: https://lore.kernel.org/all/juuc4af7ndbajcl7gzf4tg5qz2q2j5tt3rvql4jbauradujrre@gc5nbdhhixaf/ > Tested-by: Leonardo Costa <leonardo.costa@toradex.com> > Cc: stable@vger.kernel.org > Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com> > --- > drivers/of/property.c | 38 ++++++++++++++++++++++++++++---------- > 1 file changed, 28 insertions(+), 10 deletions(-) > Reviewed-by: Herve Codina <herve.codina@bootlin.com> Best regards, Hervé ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 4/7] of: property: fw_devlink: Follow PWM nexus maps 2026-09-10 14:16 [PATCH v2 0/7] of: property: Make fw_devlink follow GPIO, PWM and clock nexus maps Ernest Van Hoecke 2026-09-10 14:16 ` [PATCH v2 1/7] of: property: fw_devlink: Follow GPIO " Ernest Van Hoecke @ 2026-09-10 14:16 ` Ernest Van Hoecke 2026-09-16 17:52 ` Herve Codina 2026-10-13 12:09 ` [PATCH v2 0/7] of: property: Make fw_devlink follow GPIO, PWM and clock " Frieder Schrempf 2 siblings, 1 reply; 9+ messages in thread From: Ernest Van Hoecke @ 2026-09-10 14:16 UTC (permalink / raw) To: Rob Herring, Saravana Kannan Cc: Miquel Raynal (Schneider Electric), Frank Li, Kieran Bingham, Pengutronix Kernel Team, Stephen Boyd, Brian Masney, Linus Walleij, Bartosz Golaszewski, Uwe Kleine-König, Herve Codina, Greg Kroah-Hartman, Geert Uytterhoeven, Leonardo Costa, devicetree, linux-clk, linux-gpio, linux-pwm, linux-kernel, Ernest Van Hoecke, stable From: Ernest Van Hoecke <ernest.vanhoecke@toradex.com> PWM consumers use of_parse_phandle_with_args_map() to resolve specifiers through pwm-map properties. fw_devlink instead parses the pwms property as a direct phandle reference, so it records the nexus node as the supplier rather than the mapped PWM provider. A nexus is a translation node, not the PWM 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 pwms so fw_devlink resolves the same provider as the PWM consumer API. Direct PWM references continue to work because the map-aware parser returns the original provider when no pwm-map property is present. Fixes: e71e46a6f19c ("pwm: Add support for pwm nexus dt bindings") Reported-by: Leonardo Costa <leonardo.costa@toradex.com> Link: https://lore.kernel.org/all/juuc4af7ndbajcl7gzf4tg5qz2q2j5tt3rvql4jbauradujrre@gc5nbdhhixaf/ Tested-by: Leonardo Costa <leonardo.costa@toradex.com> Cc: stable@vger.kernel.org Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com> --- drivers/of/property.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/of/property.c b/drivers/of/property.c index eba7e9fe6c38..a9c51d639a2b 100644 --- a/drivers/of/property.c +++ b/drivers/of/property.c @@ -1331,6 +1331,15 @@ static struct device_node *parse_##fname(struct device_node *np, \ return parse_prop_cells(np, prop_name, index, name, cells); \ } +#define DEFINE_SIMPLE_NEXUS_PROP(fname, name, stem) \ +static struct device_node *parse_##fname(struct device_node *np, \ + const char *prop_name, int index) \ +{ \ + if (strcmp(prop_name, name)) \ + return NULL; \ + return parse_nexus_prop(np, prop_name, index, stem); \ +} + /** * parse_suffix_prop_cells - Suffix property parsing function for suppliers * @@ -1426,7 +1435,7 @@ DEFINE_SIMPLE_PROP(extcon, "extcon", NULL) DEFINE_SIMPLE_PROP(nvmem_cells, "nvmem-cells", "#nvmem-cell-cells") DEFINE_SIMPLE_PROP(phys, "phys", "#phy-cells") DEFINE_SIMPLE_PROP(wakeup_parent, "wakeup-parent", NULL) -DEFINE_SIMPLE_PROP(pwms, "pwms", "#pwm-cells") +DEFINE_SIMPLE_NEXUS_PROP(pwms, "pwms", "pwm") DEFINE_SIMPLE_PROP(resets, "resets", "#reset-cells") DEFINE_SIMPLE_PROP(leds, "leds", NULL) DEFINE_SIMPLE_PROP(backlight, "backlight", NULL) -- 2.43.0 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2 4/7] of: property: fw_devlink: Follow PWM nexus maps 2026-09-10 14:16 ` [PATCH v2 4/7] of: property: fw_devlink: Follow PWM " Ernest Van Hoecke @ 2026-09-16 17:52 ` Herve Codina 0 siblings, 0 replies; 9+ messages in thread From: Herve Codina @ 2026-09-16 17:52 UTC (permalink / raw) To: Ernest Van Hoecke Cc: Rob Herring, Saravana Kannan, Miquel Raynal (Schneider Electric), Frank Li, Kieran Bingham, Pengutronix Kernel Team, Stephen Boyd, Brian Masney, Linus Walleij, Bartosz Golaszewski, Uwe Kleine-König, Greg Kroah-Hartman, Geert Uytterhoeven, Leonardo Costa, devicetree, linux-clk, linux-gpio, linux-pwm, linux-kernel, Ernest Van Hoecke, stable Hi Ernest, On Thu, 10 Sep 2026 16:16:45 +0200 Ernest Van Hoecke <ernestvanhoecke@gmail.com> wrote: > From: Ernest Van Hoecke <ernest.vanhoecke@toradex.com> > > PWM consumers use of_parse_phandle_with_args_map() to resolve specifiers > through pwm-map properties. fw_devlink instead parses the pwms property > as a direct phandle reference, so it records the nexus node as the > supplier rather than the mapped PWM provider. > > A nexus is a translation node, not the PWM 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 pwms so fw_devlink resolves the same > provider as the PWM consumer API. Direct PWM references continue to work > because the map-aware parser returns the original provider when no > pwm-map property is present. > > Fixes: e71e46a6f19c ("pwm: Add support for pwm nexus dt bindings") > Reported-by: Leonardo Costa <leonardo.costa@toradex.com> > Link: https://lore.kernel.org/all/juuc4af7ndbajcl7gzf4tg5qz2q2j5tt3rvql4jbauradujrre@gc5nbdhhixaf/ > Tested-by: Leonardo Costa <leonardo.costa@toradex.com> > Cc: stable@vger.kernel.org > Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com> > --- > drivers/of/property.c | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > Reviewed-by: Herve Codina <herve.codina@bootlin.com> Best regards, Hervé ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 0/7] of: property: Make fw_devlink follow GPIO, PWM and clock nexus maps 2026-09-10 14:16 [PATCH v2 0/7] of: property: Make fw_devlink follow GPIO, PWM and clock nexus maps Ernest Van Hoecke 2026-09-10 14:16 ` [PATCH v2 1/7] of: property: fw_devlink: Follow GPIO " Ernest Van Hoecke 2026-09-10 14:16 ` [PATCH v2 4/7] of: property: fw_devlink: Follow PWM " Ernest Van Hoecke @ 2026-10-13 12:09 ` Frieder Schrempf 2026-10-13 12:49 ` Ernest Van Hoecke 2 siblings, 1 reply; 9+ messages in thread From: Frieder Schrempf @ 2026-10-13 12:09 UTC (permalink / raw) To: Ernest Van Hoecke, Rob Herring, Saravana Kannan Cc: Miquel Raynal (Schneider Electric), Frank Li, Kieran Bingham, Pengutronix Kernel Team, Stephen Boyd, Brian Masney, Linus Walleij, Bartosz Golaszewski, Uwe Kleine-König, Herve Codina, Greg Kroah-Hartman, Geert Uytterhoeven, Leonardo Costa, devicetree, linux-clk, linux-gpio, linux-pwm, linux-kernel, Ernest Van Hoecke, stable Hi Ernest, On 10.09.26 16:16, Ernest Van Hoecke wrote: > This series fixes an fw_devlink supplier-resolution problem reported by > Leonardo Costa while using a Devicetree nexus to describe GPIO and PWM > resources routed through an LVDS connector. Consumers referencing the > nexus could remain deferred because fw_devlink linked them to the nexus > rather than to the providers selected by gpio-map and pwm-map. [1] > > GPIO, PWM and clock consumer APIs use of_parse_phandle_with_args_map() > to resolve specifiers through gpio-map, pwm-map and clock-map > properties. The corresponding fw_devlink parsers use direct phandle > parsing instead. Given a consumer which references a nexus, the consumer > API and fw_devlink therefore resolve the reference to different nodes: > > consumer API: consumer -> nexus -> mapped provider > fw_devlink: consumer -> nexus > > A nexus is a translation node rather than the resource provider and need > not have a driver. The link to it can consequently remain unresolved and > defer the consumer even though the mapped provider is available. > > Make the fw_devlink GPIO, PWM and clock parsers use the same map-aware > resolver as their consumer APIs. The resolver also handles valid direct > references by returning the original provider when no map is present. > Use dedicated exact-name and suffix declaration macros to opt these > bindings into map-aware parsing without changing unrelated property > parsers. Retain GPIO's existing exclusions and compatibility handling. > > The regression tests call the OF add_links operation and verify that a > mapped reference creates exactly one link to the final provider, not to > the nexus. They also cover valid direct references. The GPIO tests > exercise all property spellings recognized by fw_devlink, including the > deprecated singular and unprefixed forms. > > Tested with: > - The new CONFIG_OF_UNITTEST fw_devlink cases under QEMU/x86_64 all > passed > - W=1 builds on x86_64 and arm64, including the OF unittest data > - Toradex Verdin iMX8M Plus hardware using a connector nexus for the > display GPIO and PWM resources: the display probes successfully > > [1] https://lore.kernel.org/all/juuc4af7ndbajcl7gzf4tg5qz2q2j5tt3rvql4jbauradujrre@gc5nbdhhixaf/ > > Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com> What is the status of this? Can you send a follow-up? Frank is asking me to use nexus connector nodes and it looks like I will run into this issue. Thanks Frieder ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 0/7] of: property: Make fw_devlink follow GPIO, PWM and clock nexus maps 2026-10-13 12:09 ` [PATCH v2 0/7] of: property: Make fw_devlink follow GPIO, PWM and clock " Frieder Schrempf @ 2026-10-13 12:49 ` Ernest Van Hoecke 0 siblings, 0 replies; 9+ messages in thread From: Ernest Van Hoecke @ 2026-10-13 12:49 UTC (permalink / raw) To: Frieder Schrempf Cc: Rob Herring, Saravana Kannan, Miquel Raynal (Schneider Electric), Frank Li, Kieran Bingham, Pengutronix Kernel Team, Stephen Boyd, Brian Masney, Linus Walleij, Bartosz Golaszewski, Uwe Kleine-König, Herve Codina, Greg Kroah-Hartman, Geert Uytterhoeven, Leonardo Costa, devicetree, linux-clk, linux-gpio, linux-pwm, linux-kernel, Ernest Van Hoecke, stable On Tue, Oct 13, 2026 at 02:09:37PM +0200, Frieder Schrempf wrote: > Hi Ernest, > > On 10.09.26 16:16, Ernest Van Hoecke wrote: > > [...] > What is the status of this? Can you send a follow-up? > > Frank is asking me to use nexus connector nodes and it looks like I will > run into this issue. > > Thanks > Frieder Hi Frieder, I'll be sending a follow up very soon and address all the valuable feedback I got here. Thanks for your interest! Apologies for the delay, it's been quite busy here, but I also had some nice chats about the topic at ELC 2026 last week so I'll follow up soon. Kind regards, Ernest ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-10-13 12:49 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-09-10 14:16 [PATCH v2 0/7] of: property: Make fw_devlink follow GPIO, PWM and clock nexus maps Ernest Van Hoecke 2026-09-10 14:16 ` [PATCH v2 1/7] of: property: fw_devlink: Follow GPIO " Ernest Van Hoecke 2026-09-11 7:51 ` Bartosz Golaszewski 2026-09-16 17:14 ` Linus Walleij 2026-09-16 17:43 ` Herve Codina 2026-09-10 14:16 ` [PATCH v2 4/7] of: property: fw_devlink: Follow PWM " Ernest Van Hoecke 2026-09-16 17:52 ` Herve Codina 2026-10-13 12:09 ` [PATCH v2 0/7] of: property: Make fw_devlink follow GPIO, PWM and clock " Frieder Schrempf 2026-10-13 12:49 ` Ernest Van Hoecke
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox