UPSTREAM: driver core: Add fw_devlink_parse_fwtree()

This function is a wrapper around fwnode_operations.add_links().

This function parses each node in a fwnode tree and create fwnode links
for each of those nodes. The information for creating the fwnode links
(the supplier and consumer fwnode) is obtained by parsing the properties
in each of the fwnodes.

This function also ensures that no fwnode is parsed more than once by
marking the fwnodes as parsed.

Signed-off-by: Saravana Kannan <saravanak@google.com>
Link: https://lore.kernel.org/r/20201121020232.908850-13-saravanak@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit c2c724c868c42c5166bf7aa644dd0a0c8d30b47a)
Bug: 178143855
Bug: 169667932
Change-Id: I5e934d6a508d96a697016f1451cc595ef671d839
This commit is contained in:
Saravana Kannan
2020-11-20 18:02:27 -08:00
parent 9a818648a5
commit 72d16fe015
2 changed files with 27 additions and 0 deletions

View File

@@ -15,12 +15,20 @@
struct fwnode_operations;
struct device;
/*
* fwnode link flags
*
* LINKS_ADDED: The fwnode has already be parsed to add fwnode links.
*/
#define FWNODE_FLAG_LINKS_ADDED BIT(0)
struct fwnode_handle {
struct fwnode_handle *secondary;
const struct fwnode_operations *ops;
struct device *dev;
struct list_head suppliers;
struct list_head consumers;
u8 flags;
};
struct fwnode_link {