greybus: record connection protocol
authorAlex Elder <elder@linaro.org>
Thu, 2 Oct 2014 17:30:06 +0000 (12:30 -0500)
committerGreg Kroah-Hartman <greg@kroah.com>
Fri, 3 Oct 2014 04:22:45 +0000 (21:22 -0700)
Record the protocol association with a connection when it gets
created.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
drivers/staging/greybus/connection.c
drivers/staging/greybus/connection.h
drivers/staging/greybus/manifest.c

index f3f774d..d63048c 100644 (file)
@@ -23,7 +23,7 @@
  * pointer otherwise.
  */
 struct gb_connection *gb_connection_create(struct gb_interface *interface,
-                                               u16 cport_id)
+                               u16 cport_id, enum greybus_protocol protocol)
 {
        struct gb_connection *connection;
        struct greybus_host_device *hd;
@@ -41,6 +41,8 @@ struct gb_connection *gb_connection_create(struct gb_interface *interface,
        connection->hd = hd;                    /* XXX refcount? */
        connection->interface = interface;      /* XXX refcount? */
        connection->interface_cport_id = cport_id;
+       connection->protocol = protocol;
+
        INIT_LIST_HEAD(&connection->operations);
        atomic_set(&connection->op_cycle, 0);
 
index 530d645..15bdc81 100644 (file)
@@ -21,14 +21,14 @@ struct gb_connection {
 
        struct list_head                hd_links;
        struct list_head                interface_links;
-       /* protocol */
+       enum greybus_protocol           protocol;
 
        struct list_head                operations;
        atomic_t                        op_cycle;
 };
 
 struct gb_connection *gb_connection_create(struct gb_interface *interface,
-                                               u16 cport_id);
+                               u16 cport_id, enum greybus_protocol protocol);
 void gb_connection_destroy(struct gb_connection *connection);
 
 u16 gb_connection_op_id(struct gb_connection *connection);
index 6411c26..a694c88 100644 (file)
@@ -204,7 +204,7 @@ u32 gb_manifest_parse_cports(struct gb_interface *interface)
                /* Found one.  Set up its function structure */
                protocol = (enum greybus_protocol)desc_cport->protocol;
                cport_id = le16_to_cpu(desc_cport->id);
-               if (!gb_connection_create(interface, cport_id))
+               if (!gb_connection_create(interface, cport_id, protocol))
                        return 0;       /* Error */
 
                count++;