device property: Add a macro for interating over graph endpoints
authorSakari Ailus <sakari.ailus@linux.intel.com>
Tue, 19 Sep 2017 09:39:12 +0000 (12:39 +0300)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 8 Nov 2017 23:17:23 +0000 (00:17 +0100)
Add a convenience macro for iterating over graph endpoints. Iterating over
graph endpoints using fwnode_graph_get_next_endpoint() is a recurring
pattern, and this macro allows calling that function in a slightly more
convenient way. For instance,

for (child = NULL;
     (child = fwnode_graph_get_next_endpoint(fwnode, child)); )

becomes

fwnode_graph_for_each_endpoint(fwnode, child)

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
include/linux/property.h

index 42069c2..f6189a3 100644 (file)
@@ -293,6 +293,10 @@ struct fwnode_handle *
 fwnode_graph_get_remote_node(const struct fwnode_handle *fwnode, u32 port,
                             u32 endpoint);
 
+#define fwnode_graph_for_each_endpoint(fwnode, child)                  \
+       for (child = NULL;                                              \
+            (child = fwnode_graph_get_next_endpoint(fwnode, child)); )
+
 int fwnode_graph_parse_endpoint(const struct fwnode_handle *fwnode,
                                struct fwnode_endpoint *endpoint);