From 3b05d8508f82fc18fe7ef0618671c0603c490c0d Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan@hovoldconsulting.com>
Date: Wed, 11 May 2016 10:18:05 +0200
Subject: [PATCH] greybus: connection: add camera-data connected workaround

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 | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/staging/greybus/connection.c b/drivers/staging/greybus/connection.c
index 395a9dfc99c0d..f803d40413ac0 100644
--- a/drivers/staging/greybus/connection.c
+++ b/drivers/staging/greybus/connection.c
@@ -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)
-- 
2.30.2