From: Johan Hovold <johan@hovoldconsulting.com>
Date: Wed, 11 May 2016 08:17:57 +0000 (+0200)
Subject: greybus: connection: add helper for creating offloaded connection
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=781ac8662ffafa89e6675c3eb608ec9c569f24b7;p=linux.git

greybus: connection: add helper for creating offloaded connection

Add helper for creating offloaded connection.

This can later be extended to support more elaborate resource
management.

Also fix a minor white space issue.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
---

diff --git a/drivers/staging/greybus/connection.c b/drivers/staging/greybus/connection.c
index 9e8828109b1e0..95855d1cad9f5 100644
--- a/drivers/staging/greybus/connection.c
+++ b/drivers/staging/greybus/connection.c
@@ -264,6 +264,19 @@ gb_connection_create_flags(struct gb_bundle *bundle, u16 cport_id,
 }
 EXPORT_SYMBOL_GPL(gb_connection_create_flags);
 
+struct gb_connection *
+gb_connection_create_offloaded(struct gb_bundle *bundle, u16 cport_id,
+					unsigned long flags)
+{
+	struct gb_interface *intf = bundle->intf;
+
+	flags |= GB_CONNECTION_FLAG_OFFLOADED;
+
+	return _gb_connection_create(intf->hd, -1, intf, bundle, cport_id,
+					NULL, flags);
+}
+EXPORT_SYMBOL_GPL(gb_connection_create_offloaded);
+
 static int gb_connection_hd_cport_enable(struct gb_connection *connection)
 {
 	struct gb_host_device *hd = connection->hd;
diff --git a/drivers/staging/greybus/connection.h b/drivers/staging/greybus/connection.h
index c740c3816f0d9..a8da9ca214bec 100644
--- a/drivers/staging/greybus/connection.h
+++ b/drivers/staging/greybus/connection.h
@@ -64,9 +64,11 @@ struct gb_connection *gb_connection_create_static(struct gb_host_device *hd,
 struct gb_connection *gb_connection_create_control(struct gb_interface *intf);
 struct gb_connection *gb_connection_create(struct gb_bundle *bundle,
 				u16 cport_id, gb_request_handler_t handler);
-struct gb_connection * gb_connection_create_flags(struct gb_bundle *bundle,
+struct gb_connection *gb_connection_create_flags(struct gb_bundle *bundle,
 				u16 cport_id, gb_request_handler_t handler,
 				unsigned long flags);
+struct gb_connection *gb_connection_create_offloaded(struct gb_bundle *bundle,
+				u16 cport_id, unsigned long flags);
 void gb_connection_destroy(struct gb_connection *connection);
 
 static inline bool gb_connection_is_static(struct gb_connection *connection)