driver core: Adds flags param to fwnode_link_add()
authorSaravana Kannan <saravanak@google.com>
Tue, 5 Mar 2024 05:04:54 +0000 (21:04 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 7 Mar 2024 22:10:01 +0000 (22:10 +0000)
Allow the callers to set fwnode link flags when adding fwnode links.

Signed-off-by: Saravana Kannan <saravanak@google.com>
Acked-by: "Rafael J. Wysocki" <rafael@kernel.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20240305050458.1400667-2-saravanak@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/core.c
drivers/firmware/efi/sysfb_efi.c
drivers/of/property.c
include/linux/fwnode.h

index 35ccd8b..83a6f42 100644 (file)
@@ -92,12 +92,13 @@ static int __fwnode_link_add(struct fwnode_handle *con,
        return 0;
 }
 
-int fwnode_link_add(struct fwnode_handle *con, struct fwnode_handle *sup)
+int fwnode_link_add(struct fwnode_handle *con, struct fwnode_handle *sup,
+                   u8 flags)
 {
        int ret;
 
        mutex_lock(&fwnode_link_lock);
-       ret = __fwnode_link_add(con, sup, 0);
+       ret = __fwnode_link_add(con, sup, flags);
        mutex_unlock(&fwnode_link_lock);
        return ret;
 }
index 456d0e5..cc807ed 100644 (file)
@@ -336,7 +336,7 @@ static int efifb_add_links(struct fwnode_handle *fwnode)
        if (!sup_np)
                return 0;
 
-       fwnode_link_add(fwnode, of_fwnode_handle(sup_np));
+       fwnode_link_add(fwnode, of_fwnode_handle(sup_np), 0);
        of_node_put(sup_np);
 
        return 0;
index b71267c..bce849f 100644 (file)
@@ -1085,7 +1085,7 @@ static void of_link_to_phandle(struct device_node *con_np,
                tmp_np = of_get_next_parent(tmp_np);
        }
 
-       fwnode_link_add(of_fwnode_handle(con_np), of_fwnode_handle(sup_np));
+       fwnode_link_add(of_fwnode_handle(con_np), of_fwnode_handle(sup_np), 0);
 }
 
 /**
index 80f3cd9..70d9c40 100644 (file)
@@ -214,7 +214,8 @@ static inline void fwnode_dev_initialized(struct fwnode_handle *fwnode,
                fwnode->flags &= ~FWNODE_FLAG_INITIALIZED;
 }
 
-int fwnode_link_add(struct fwnode_handle *con, struct fwnode_handle *sup);
+int fwnode_link_add(struct fwnode_handle *con, struct fwnode_handle *sup,
+                   u8 flags);
 void fwnode_links_purge(struct fwnode_handle *fwnode);
 void fw_devlink_purge_absent_suppliers(struct fwnode_handle *fwnode);
 bool fw_devlink_is_strict(void);