Skip to content

Commit ca13ab6

Browse files
author
Bartosz Golaszewski
committed
gpio: swnode: defer probe on references to unregistered software nodes
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@linux.intel.com> Link: https://patch.msgid.link/20260407-swnode-unreg-retcode-v4-2-1b2f0725eb9c@oss.qualcomm.com Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
1 parent 5bcd451 commit ca13ab6

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

drivers/gpio/gpiolib-swnode.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,14 @@ struct gpio_desc *swnode_find_gpio(struct fwnode_handle *fwnode,
9393
ret = swnode_gpio_get_reference(fwnode, propname, idx, &args);
9494
if (ret == 0)
9595
break;
96+
if (ret == -ENOTCONN)
97+
/*
98+
* -ENOTCONN for a software node reference lookup means
99+
* that a remote struct software_node exists but has
100+
* not yet been registered as a firmware node. Defer
101+
* until this happens.
102+
*/
103+
return ERR_PTR(-EPROBE_DEFER);
96104
}
97105
if (ret) {
98106
pr_debug("%s: can't parse '%s' property of node '%pfwP[%d]'\n",

0 commit comments

Comments
 (0)