aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/fwnode.h
diff options
context:
space:
mode:
authorSaravana Kannan <saravanak@google.com>2019-10-28 15:00:24 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-11-02 18:05:18 +0100
commit03324507e66c7664c754b1ef92c5c3be24c78aa2 (patch)
tree4cff81a6887f21a050c1c3852afbb8a905abcb95 /include/linux/fwnode.h
parentdriver core: Allow a device to wait on optional suppliers (diff)
downloadlinux-dev-03324507e66c7664c754b1ef92c5c3be24c78aa2.tar.xz
linux-dev-03324507e66c7664c754b1ef92c5c3be24c78aa2.zip
driver core: Allow fwnode_operations.add_links to differentiate errors
When add_links() still has suppliers that it needs to link to in the future, this patch allows it to differentiate between suppliers that are needed for probing vs suppliers that are needed for sync_state() correctness. Signed-off-by: Saravana Kannan <saravanak@google.com> Link: https://lore.kernel.org/r/20191028220027.251605-4-saravanak@google.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/fwnode.h')
-rw-r--r--include/linux/fwnode.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h
index 97223e2410bd..766ff9bb5876 100644
--- a/include/linux/fwnode.h
+++ b/include/linux/fwnode.h
@@ -94,10 +94,15 @@ struct fwnode_reference_args {
* available suppliers.
*
* Return 0 if device links have been successfully created to all
- * the suppliers of this device or if the supplier information is
- * not known. Return an error if and only if the supplier
- * information is known but some of the suppliers are not yet
- * available to create device links to.
+ * the suppliers this device needs to create device links to or if
+ * the supplier information is not known.
+ *
+ * Return -ENODEV if and only if the suppliers needed for probing
+ * the device are not yet available to create device links to.
+ *
+ * Return -EAGAIN if there are suppliers that need to be linked to
+ * that are not yet available but none of those suppliers are
+ * necessary for probing this device.
*/
struct fwnode_operations {
struct fwnode_handle *(*get)(struct fwnode_handle *fwnode);