resource: Add a resource_list_first_type helper
authorRob Herring <robh@kernel.org>
Mon, 28 Oct 2019 16:32:32 +0000 (11:32 -0500)
committerpopcornmix <popcornmix@gmail.com>
Wed, 1 Jul 2020 15:33:25 +0000 (16:33 +0100)
commit 494f8b10d832456a96be4ee7317425f6936cabc8 upstream.

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>
include/linux/resource_ext.h

index 06da59b..ff0339d 100644 (file)
@@ -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 */