From: Matt Porter <mporter@linaro.org>
Date: Wed, 22 Oct 2014 02:43:29 +0000 (-0400)
Subject: greybus: module: add gb_module_find()
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=6271b5bac99c2d06543adbdbecb9157d77765831;p=linux.git

greybus: module: add gb_module_find()

Add support for getting a struct gb_module from a
Module ID.

Signed-off-by: Matt Porter <mporter@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
---

diff --git a/drivers/staging/greybus/module.c b/drivers/staging/greybus/module.c
index 2883947fb6308..50139f41fe208 100644
--- a/drivers/staging/greybus/module.c
+++ b/drivers/staging/greybus/module.c
@@ -107,6 +107,17 @@ void gb_module_destroy(struct gb_module *gmod)
 	kfree(gmod);
 }
 
+struct gb_module *gb_module_find(struct greybus_host_device *hd, u8 module_id)
+{
+	struct gb_module *module;
+
+	list_for_each_entry(module, &hd->modules, links)
+		if (module->module_id == module_id)
+			return module;
+
+	return NULL;
+}
+
 void gb_module_interfaces_init(struct gb_module *gmod)
 {
 	struct gb_interface *interface;
diff --git a/drivers/staging/greybus/module.h b/drivers/staging/greybus/module.h
index 2c6707d6d85fa..82def46e5ab14 100644
--- a/drivers/staging/greybus/module.h
+++ b/drivers/staging/greybus/module.h
@@ -52,6 +52,9 @@ struct gb_module *gb_module_create(struct greybus_host_device *hd,
 					u8 module_id);
 void gb_module_destroy(struct gb_module *module);
 
+struct gb_module *gb_module_find(struct greybus_host_device *hd,
+				u8 module_id);
+
 void gb_module_interfaces_init(struct gb_module *gmod);
 
 #endif /* __MODULE_H */