greybus: specify type when creating an operation
authorAlex Elder <elder@linaro.org>
Fri, 3 Oct 2014 20:05:20 +0000 (15:05 -0500)
committerGreg Kroah-Hartman <greg@kroah.com>
Sat, 4 Oct 2014 02:02:22 +0000 (19:02 -0700)
The type of an operation belongs in the operation header, which
shouldn't be touched by users of the interface.  So specify it
at operation creation time.

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

index 75f6e50..03f6660 100644 (file)
@@ -111,7 +111,7 @@ static void gbuf_out_callback(struct gbuf *gbuf)
  * failure occurs due to memory exhaustion.
  */
 struct gb_operation *gb_operation_create(struct gb_connection *connection,
-                                       size_t size)
+                                       size_t size, u8 type)
 {
        struct gb_operation *operation;
        struct gb_operation_msg_hdr *header;
@@ -139,8 +139,9 @@ struct gb_operation *gb_operation_create(struct gb_connection *connection,
        /* Fill in the header structure and payload pointer */
        operation->gbuf = gbuf;
        header = (struct gb_operation_msg_hdr *)&gbuf->transfer_buffer;
-       header->id = 0;
        header->size = cpu_to_le16(size);
+       header->id = 0;         /* Filled in when submitted */
+       header->type = type;
        operation->payload = (char *)header + sizeof(*header);
 
        operation->callback = NULL;     /* set at submit time */
index 96a7a0f..0dff703 100644 (file)
@@ -60,7 +60,7 @@ struct gb_operation {
 };
 
 struct gb_operation *gb_operation_create(struct gb_connection *connection,
-                                       size_t size);
+                                       size_t size, u8 type);
 void gb_operation_destroy(struct gb_operation *operation);
 
 int gb_operation_wait(struct gb_operation *operation);