greybus: update svc_msg_header fields and users to match spec
authorMatt Porter <mporter@linaro.org>
Thu, 18 Sep 2014 19:25:41 +0000 (15:25 -0400)
committerGreg Kroah-Hartman <greg@kroah.com>
Fri, 19 Sep 2014 03:06:08 +0000 (20:06 -0700)
The Greybus spec has been updated to clarify some of the original
intent of the SVC message definition. The svc_msg_header was:

struct svc_msg_header {
__u8 function;
__u8 message_type;
...
}

and is now

struct svc_msg_header {
__u8 function_id;
__u8 message_type;
...
}

to match the spec. The function_id carries enum svc_function_id values
and message_type is now clarified to be a session layer level field
that is simply "data" or "error".

Change all references of function type to function id. For now, don't
parse the message_type field but add the two allowable svc_msg_type enums.

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

index 4293073..c2c5aa6 100644 (file)
@@ -29,7 +29,7 @@ struct ap_msg {
 
 static struct workqueue_struct *ap_workqueue;
 
-static struct svc_msg *svc_msg_alloc(enum svc_function_type type)
+static struct svc_msg *svc_msg_alloc(enum svc_function_id id)
 {
        struct svc_msg *svc_msg;
 
@@ -37,8 +37,8 @@ static struct svc_msg *svc_msg_alloc(enum svc_function_type type)
        if (!svc_msg)
                return NULL;
 
-       // FIXME - verify we are only sending message types we should be
-       svc_msg->header.type = type;
+       // FIXME - verify we are only sending function IDs we should be
+       svc_msg->header.function_id = id;
        return svc_msg;
 }
 
@@ -187,7 +187,7 @@ static void ap_process_event(struct work_struct *work)
        }
 
        /* Look at the message to figure out what to do with it */
-       switch (svc_msg->header.type) {
+       switch (svc_msg->header.function_id) {
        case SVC_FUNCTION_HANDSHAKE:
                svc_handshake(&svc_msg->handshake, hd);
                break;
@@ -210,8 +210,8 @@ static void ap_process_event(struct work_struct *work)
                svc_suspend(&svc_msg->suspend, hd);
                break;
        default:
-               dev_err(hd->parent, "received invalid SVC message type %d\n",
-                       svc_msg->header.type);
+               dev_err(hd->parent, "received invalid SVC function ID %d\n",
+                       svc_msg->header.function_id);
        }
 
        /* clean the message up */
index bbc7ef0..3f1a934 100644 (file)
@@ -12,7 +12,7 @@
 
 #pragma pack(push, 1)
 
-enum svc_function_type {
+enum svc_function_id {
        SVC_FUNCTION_HANDSHAKE                  = 0x00,
        SVC_FUNCTION_UNIPRO_NETWORK_MANAGEMENT  = 0x01,
        SVC_FUNCTION_HOTPLUG                    = 0x02,
@@ -22,9 +22,14 @@ enum svc_function_type {
        SVC_FUNCTION_SUSPEND                    = 0x06,
 };
 
+enum svc_msg_type {
+       SVC_MSG_DATA                            = 0x00,
+       SVC_MSG_ERROR                           = 0xff,
+};
+
 struct svc_msg_header {
-       __u8    function;
-       __u8    type;           /* enum svc_function_type */
+       __u8    function_id;    /* enum svc_function_id */
+       __u8    message_type;
        __u8    version_major;
        __u8    version_minor;
        __le16  payload_length;