diff options
author | David Lin <dtwlin@google.com> | 2016-07-07 22:07:00 -0500 |
---|---|---|
committer | Alex Elder <elder@linaro.org> | 2016-07-08 14:56:28 -0500 |
commit | 707a5c42ce55938de599e4461384efafd6950c37 (patch) | |
tree | bb8ee07bbe0ccc21faff33f9fdf7f8644bf42538 | |
parent | cc28c2c2283d5e1b8d2fc0a1cf2bc45783fc7f71 (diff) | |
download | op-kernel-dev-707a5c42ce55938de599e4461384efafd6950c37.zip op-kernel-dev-707a5c42ce55938de599e4461384efafd6950c37.tar.gz |
greybus: control: add connection suspend and resume calls
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>
-rw-r--r-- | drivers/staging/greybus/control.c | 21 | ||||
-rw-r--r-- | drivers/staging/greybus/control.h | 2 |
2 files changed, 23 insertions, 0 deletions
diff --git a/drivers/staging/greybus/control.c b/drivers/staging/greybus/control.c index 55bb465..37a30b3 100644 --- a/drivers/staging/greybus/control.c +++ b/drivers/staging/greybus/control.c @@ -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; diff --git a/drivers/staging/greybus/control.h b/drivers/staging/greybus/control.h index 86a4902..f73ec3e 100644 --- a/drivers/staging/greybus/control.h +++ b/drivers/staging/greybus/control.h @@ -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); |