Re: [PATCH v3 2/2] gpio: swnode: defer probe on references to unregistered software nodes
From: Andy Shevchenko
Date: Mon Apr 06 2026 - 15:30:14 EST
On Fri, Apr 3, 2026 at 4:52 PM Bartosz Golaszewski
<bartosz.golaszewski@xxxxxxxxxxxxxxxx> wrote:
>
> fwnode_property_get_reference_args() now returns -ENOTCONN when called
> on a software node referencing another software node which has not yet
> been registered as a firmware node. It makes sense to defer probe in this
> situation as the node will most likely be registered later on and we'll
> be able to resolve the reference eventually. Change the behavior of
> swnode_find_gpio() to return -EPROBE_DEFER if the software node reference
> resolution returns -ENOTCONN.
...
> for_each_gpio_property_name(propname, con_id) {
> ret = swnode_gpio_get_reference(fwnode, propname, idx, &args);
> - if (ret == 0)
> + if (ret == 0 || ret == -ENOTCONN)
> break;
If I understood the logic correctly this may be just extended as
if (ret == 0)
break;
if (ret == -ENOTCONN)
/* ... */
return -EPROBE_DEFER;
> }
> if (ret) {
> + if (ret == -ENOTCONN)
> + /*
> + * -ENOTCONN for a software node reference lookup means
> + * that a remote struct software_node exists but has
> + * not yet been registered as a firmware node. Defer
> + * until this happens.
> + */
> + return ERR_PTR(-EPROBE_DEFER);
> +
> pr_debug("%s: can't parse '%s' property of node '%pfwP[%d]'\n",
> __func__, propname, fwnode, idx);
> return ERR_PTR(ret);
--
With Best Regards,
Andy Shevchenko