greybus: connection: add camera-data connected workaround
authorJohan Hovold <johan@hovoldconsulting.com>
Wed, 11 May 2016 08:18:05 +0000 (10:18 +0200)
committerGreg Kroah-Hartman <gregkh@google.com>
Fri, 13 May 2016 13:32:48 +0000 (15:32 +0200)
Firmware currently lacks a representation of the offloaded CDSI
connections and connected requests sent for these ports therefore fails.

Add a temporary work-around until this has been resolved in firmware.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/connection.c

index 395a9df..f803d40 100644 (file)
@@ -402,6 +402,16 @@ static int gb_connection_control_connected(struct gb_connection *connection)
        if (gb_connection_is_static(connection))
                return 0;
 
+       /*
+        * HACK: Suppress connected request for the offloaded camera
+        * connection as it is currently not supported by firmware. Note that
+        * the corresponding non-fatal disconnected event is still sent.
+        */
+       if (gb_connection_is_offloaded(connection) &&
+                       connection->flags & GB_CONNECTION_FLAG_CDSI1) {
+               return 0;
+       }
+
        control = connection->intf->control;
 
        if (connection == control->connection)