greybus: connection: Send protocol version for firmware protocol
authorViresh Kumar <viresh.kumar@linaro.org>
Wed, 12 Aug 2015 03:49:34 +0000 (09:19 +0530)
committerGreg Kroah-Hartman <gregkh@google.com>
Wed, 12 Aug 2015 05:13:12 +0000 (22:13 -0700)
As per greybus specs, we need to send the protocol version for firmware
protocol and so this special case Hack.

Probably we should always send the protocol version AP supports and kill
this hack completely. But then it requires updates to specs as well, and
that should be done after some discussion.

For now, add a FIXME for that and a special case for firmware protocol.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/connection.c

index 2b2be3fd16383de59c0b4f8fb28f1ffa9d808999..6078443a7dcae2e249a0004b2a9ad31487ab993f 100644 (file)
@@ -421,7 +421,19 @@ 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) {
-               ret = gb_protocol_get_version(connection, false);
+               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);
                if (ret) {
                        dev_err(&connection->dev,
                                "Failed to get version CPort-%d (%d)\n",