Re: [PATCH v4 2/2] gpio: swnode: defer probe on references to unregistered software nodes
From: Andy Shevchenko
Date: Tue Apr 07 2026 - 10:42:51 EST
On Tue, Apr 07, 2026 at 03:27:58PM +0200, Bartosz Golaszewski 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.
Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
...
> ret = swnode_gpio_get_reference(fwnode, propname, idx, &args);
> if (ret == 0)
> break;
Maybe check for an error first? Dunno. Up to you.
if (ret == -ENOTCONN)
...
if (ret)
continue;
/* The reference is found, bail out */
break;
(Also may be done in a separate change no need to mix these things
in the proposed change.)
> + 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);
--
With Best Regards,
Andy Shevchenko