diff options
author | Axel Haslam <ahaslam@baylibre.com> | 2016-07-14 15:13:00 -0500 |
---|---|---|
committer | Alex Elder <elder@linaro.org> | 2016-07-14 16:53:55 -0500 |
commit | 4c615dcc6a9d910f8f68e4b57889b628e80165d4 (patch) | |
tree | 539525646534ef8b25c78c6a47477e66288b539c /drivers/staging/greybus/spi.c | |
parent | afa807b8ba23952b471abb70716076bb3c98657c (diff) | |
download | op-kernel-dev-4c615dcc6a9d910f8f68e4b57889b628e80165d4.zip op-kernel-dev-4c615dcc6a9d910f8f68e4b57889b628e80165d4.tar.gz |
greybus: spi: Add runtime_pm support
Add runtime operations to the spi driver so that the
module is woken up when an spi transfer is started
and put back to sleep when the transfer is done.
Testing Done: Let the module enter standby and initiate
an spi operation. The operation wakes up the module
and succeeds.
Signed-off-by: Axel Haslam <ahaslam@baylibre.com>
Signed-off-by: David Lin <dtwlin@google.com>
Reviewed-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Alex Elder <elder@linaro.org>
Diffstat (limited to 'drivers/staging/greybus/spi.c')
-rw-r--r-- | drivers/staging/greybus/spi.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/staging/greybus/spi.c b/drivers/staging/greybus/spi.c index a823379..2e6e328 100644 --- a/drivers/staging/greybus/spi.c +++ b/drivers/staging/greybus/spi.c @@ -35,6 +35,7 @@ static int gb_spi_probe(struct gbphy_device *gbphy_dev, gb_gbphy_set_data(gbphy_dev, connection); + gbphy_runtime_put_autosuspend(gbphy_dev); return 0; exit_connection_disable: @@ -48,6 +49,11 @@ exit_connection_destroy: static void gb_spi_remove(struct gbphy_device *gbphy_dev) { struct gb_connection *connection = gb_gbphy_get_data(gbphy_dev); + int ret; + + ret = gbphy_runtime_get_sync(gbphy_dev); + if (ret) + gbphy_runtime_get_noresume(gbphy_dev); gb_spilib_master_exit(connection); gb_connection_disable(connection); |