greybus: control: add connection suspend and resume calls
authorDavid Lin <dtwlin@google.com>
Fri, 8 Jul 2016 03:07:00 +0000 (22:07 -0500)
committerAlex Elder <elder@linaro.org>
Fri, 8 Jul 2016 19:56:28 +0000 (14:56 -0500)
Adds function calls for handling control connection suspend and resume,
for now all they do is disable and enable control connection.

Signed-off-by: David Lin <dtwlin@google.com>
Reviewed-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Alex Elder <elder@linaro.org>
drivers/staging/greybus/control.c
drivers/staging/greybus/control.h

index 55bb465..37a30b3 100644 (file)
@@ -546,6 +546,27 @@ void gb_control_disable(struct gb_control *control)
                gb_connection_disable(control->connection);
 }
 
+int gb_control_suspend(struct gb_control *control)
+{
+       gb_connection_disable(control->connection);
+
+       return 0;
+}
+
+int gb_control_resume(struct gb_control *control)
+{
+       int ret;
+
+       ret = gb_connection_enable_tx(control->connection);
+       if (ret) {
+               dev_err(&control->connection->intf->dev,
+                       "failed to enable control connection: %d\n", ret);
+               return ret;
+       }
+
+       return 0;
+}
+
 int gb_control_add(struct gb_control *control)
 {
        int ret;
index 86a4902..f73ec3e 100644 (file)
@@ -29,6 +29,8 @@ struct gb_control {
 struct gb_control *gb_control_create(struct gb_interface *intf);
 int gb_control_enable(struct gb_control *control);
 void gb_control_disable(struct gb_control *control);
+int gb_control_suspend(struct gb_control *control);
+int gb_control_resume(struct gb_control *control);
 int gb_control_add(struct gb_control *control);
 void gb_control_del(struct gb_control *control);
 struct gb_control *gb_control_get(struct gb_control *control);