From: Johan Hovold Date: Fri, 29 Apr 2016 15:08:36 +0000 (+0200) Subject: greybus: svc: define the version request X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=a2cf2e594626ce8c1e6944f6a44a7d481b84b82d;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git greybus: svc: define the version request Define the SVC version request, which need not need to stay the same as the legacy version request. Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/greybus/greybus_protocols.h b/drivers/staging/greybus/greybus_protocols.h index c074402633c6..07988fb10e0d 100644 --- a/drivers/staging/greybus/greybus_protocols.h +++ b/drivers/staging/greybus/greybus_protocols.h @@ -781,6 +781,7 @@ struct gb_spi_transfer_response { #define GB_SVC_VERSION_MINOR 0x01 /* Greybus SVC request types */ +#define GB_SVC_TYPE_PROTOCOL_VERSION 0x01 #define GB_SVC_TYPE_SVC_HELLO 0x02 #define GB_SVC_TYPE_INTF_DEVICE_ID 0x03 #define GB_SVC_TYPE_INTF_HOTPLUG 0x04 @@ -808,10 +809,15 @@ struct gb_spi_transfer_response { #define GB_SVC_TYPE_INTF_ACTIVATE 0x27 #define GB_SVC_TYPE_INTF_MAILBOX_EVENT 0x29 -/* - * SVC version request/response has the same payload as - * gb_protocol_version_request/response. - */ +struct gb_svc_version_request { + __u8 major; + __u8 minor; +} __packed; + +struct gb_svc_version_response { + __u8 major; + __u8 minor; +} __packed; /* SVC protocol hello request */ struct gb_svc_hello_request { diff --git a/drivers/staging/greybus/svc.c b/drivers/staging/greybus/svc.c index 78fe4dc37131..577e680f6a90 100644 --- a/drivers/staging/greybus/svc.c +++ b/drivers/staging/greybus/svc.c @@ -465,8 +465,8 @@ static int gb_svc_version_request(struct gb_operation *op) { struct gb_connection *connection = op->connection; struct gb_svc *svc = gb_connection_get_data(connection); - struct gb_protocol_version_request *request; - struct gb_protocol_version_response *response; + struct gb_svc_version_request *request; + struct gb_svc_version_response *response; if (op->request->payload_size < sizeof(*request)) { dev_err(&svc->dev, "short version request (%zu < %zu)\n", @@ -1192,7 +1192,7 @@ static int gb_svc_request_handler(struct gb_operation *op) * need to protect 'state' for any races. */ switch (type) { - case GB_REQUEST_TYPE_PROTOCOL_VERSION: + case GB_SVC_TYPE_PROTOCOL_VERSION: if (svc->state != GB_SVC_STATE_RESET) ret = -EINVAL; break; @@ -1213,7 +1213,7 @@ static int gb_svc_request_handler(struct gb_operation *op) } switch (type) { - case GB_REQUEST_TYPE_PROTOCOL_VERSION: + case GB_SVC_TYPE_PROTOCOL_VERSION: ret = gb_svc_version_request(op); if (!ret) svc->state = GB_SVC_STATE_PROTOCOL_VERSION;