greybus: interface: add gb_interface_find()
authorMatt Porter <mporter@linaro.org>
Wed, 22 Oct 2014 02:43:30 +0000 (22:43 -0400)
committerGreg Kroah-Hartman <greg@kroah.com>
Wed, 22 Oct 2014 05:57:49 +0000 (13:57 +0800)
Add support for getting a struct gb_interface from an
Interface ID.

Signed-off-by: Matt Porter <mporter@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
drivers/staging/greybus/interface.c
drivers/staging/greybus/interface.h

index 645f05b..0415db5 100644 (file)
@@ -60,6 +60,18 @@ void gb_interface_destroy(struct gb_interface *interface)
        kfree(interface);
 }
 
+struct gb_interface *gb_interface_find(struct gb_module *module,
+                                     u8 interface_id)
+{
+       struct gb_interface *interface;
+
+       list_for_each_entry(interface, &module->interfaces, links)
+               if (interface->id == interface_id)
+                       return interface;
+
+       return NULL;
+}
+
 int gb_interface_connections_init(struct gb_interface *interface)
 {
        struct gb_connection *connection;
index f0c9e1d..907b634 100644 (file)
@@ -14,6 +14,7 @@
 struct gb_interface {
        struct gb_module        *gmod;
        u8                      id;
+       u8                      device_id;
        struct list_head        connections;
 
        struct list_head        links;  /* module->interfaces */
@@ -22,6 +23,8 @@ struct gb_interface {
 struct gb_interface *gb_interface_create(struct gb_module *gmod, u8 module_id);
 void gb_interface_destroy(struct gb_interface *interface);
 
+struct gb_interface *gb_interface_find(struct gb_module *gmod, u8 interface_id);
+
 int gb_interface_connections_init(struct gb_interface *interface);
 void gb_interface_connections_exit(struct gb_interface *interface);