summaryrefslogtreecommitdiff
path: root/include/linux/resource_ext.h
diff options
context:
space:
mode:
authorRob Herring <robh@kernel.org>2019-10-28 11:32:32 -0500
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>2019-10-29 10:47:14 +0000
commit494f8b10d832456a96be4ee7317425f6936cabc8 (patch)
treedb7af0599f5312da9742f5c8875d17162c7d2719 /include/linux/resource_ext.h
parent54ecb8f7028c5eb3d740bb82b0f1d90f2df63c5c (diff)
resource: Add a resource_list_first_type helper
A common pattern is looping over a resource_list just to get a matching entry with a specific type. Add resource_list_first_type() helper which implements this. Signed-off-by: Rob Herring <robh@kernel.org> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Diffstat (limited to 'include/linux/resource_ext.h')
-rw-r--r--include/linux/resource_ext.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/resource_ext.h b/include/linux/resource_ext.h
index 06da59b23b79..ff0339df56af 100644
--- a/include/linux/resource_ext.h
+++ b/include/linux/resource_ext.h
@@ -66,4 +66,16 @@ resource_list_destroy_entry(struct resource_entry *entry)
#define resource_list_for_each_entry_safe(entry, tmp, list) \
list_for_each_entry_safe((entry), (tmp), (list), node)
+static inline struct resource_entry *
+resource_list_first_type(struct list_head *list, unsigned long type)
+{
+ struct resource_entry *entry;
+
+ resource_list_for_each_entry(entry, list) {
+ if (resource_type(entry->res) == type)
+ return entry;
+ }
+ return NULL;
+}
+
#endif /* _LINUX_RESOURCE_EXT_H */