diff --git a/drivers/staging/greybus/connection.c b/drivers/staging/greybus/connection.c index eae6ad143d0b..27b64d6c8f2e 100644 --- a/drivers/staging/greybus/connection.c +++ b/drivers/staging/greybus/connection.c @@ -428,19 +428,7 @@ int gb_connection_init(struct gb_connection *connection) * this for SVC as that is initiated by the SVC. */ if (connection->hd_cport_id != GB_SVC_CPORT_ID) { - bool send_request = false; - - /* - * We need to send the protocol version of the firmware protocol - * supported by AP and so this special case. - */ - if (connection->protocol->id == GREYBUS_PROTOCOL_FIRMWARE) - send_request = true; - - // FIXME: Should we always send the protocol version AP can - // support ? - - ret = gb_protocol_get_version(connection, send_request); + ret = gb_protocol_get_version(connection); if (ret) { dev_err(&connection->dev, "Failed to get version CPort-%d (%d)\n", diff --git a/drivers/staging/greybus/protocol.c b/drivers/staging/greybus/protocol.c index 5bdc2c026efd..1c746597f016 100644 --- a/drivers/staging/greybus/protocol.c +++ b/drivers/staging/greybus/protocol.c @@ -163,38 +163,32 @@ struct gb_protocol *gb_protocol_get(u8 id, u8 major, u8 minor) return protocol; } -int gb_protocol_get_version(struct gb_connection *connection, bool send_request) +int gb_protocol_get_version(struct gb_connection *connection) { - struct gb_protocol_version_response response; - struct gb_protocol_version_response *request = NULL; - int request_size = 0; + struct gb_protocol_version_response version; int retval; - if (send_request) { - response.major = connection->protocol->major; - response.minor = connection->protocol->minor; - request = &response; - request_size = sizeof(*request); - } + version.major = connection->protocol->major; + version.minor = connection->protocol->minor; retval = gb_operation_sync(connection, GB_REQUEST_TYPE_PROTOCOL_VERSION, - request, request_size, &response, - sizeof(response)); + &version, sizeof(version), &version, + sizeof(version)); if (retval) return retval; - if (response.major > connection->protocol->major) { + if (version.major > connection->protocol->major) { dev_err(&connection->dev, "unsupported major version (%hhu > %hhu)\n", - response.major, connection->protocol->major); + version.major, connection->protocol->major); return -ENOTSUPP; } - connection->module_major = response.major; - connection->module_minor = response.minor; + connection->module_major = version.major; + connection->module_minor = version.minor; dev_dbg(&connection->dev, "version_major = %u version_minor = %u\n", - response.major, response.minor); + version.major, version.minor); return 0; } diff --git a/drivers/staging/greybus/protocol.h b/drivers/staging/greybus/protocol.h index 87b5a1010de0..8d55a4a2f06e 100644 --- a/drivers/staging/greybus/protocol.h +++ b/drivers/staging/greybus/protocol.h @@ -44,7 +44,7 @@ int gb_protocol_deregister(struct gb_protocol *protocol); __gb_protocol_register(protocol, THIS_MODULE) struct gb_protocol *gb_protocol_get(u8 id, u8 major, u8 minor); -int gb_protocol_get_version(struct gb_connection *connection, bool send_request); +int gb_protocol_get_version(struct gb_connection *connection); void gb_protocol_put(struct gb_protocol *protocol);