greybus: update svc_msg_header fields and users to match spec

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>
This commit is contained in:
Matt Porter 2014-09-18 15:25:41 -04:00 committed by Greg Kroah-Hartman
parent 772149b6df
commit 710ecb0605
2 changed files with 14 additions and 9 deletions

View 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 */

View 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;