aboutsummaryrefslogtreecommitdiff
path: root/drivers/iio/accel/st_accel_buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/iio/accel/st_accel_buffer.c')
-rw-r--r--drivers/iio/accel/st_accel_buffer.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/iio/accel/st_accel_buffer.c b/drivers/iio/accel/st_accel_buffer.c
index 5501aad9108c..bf9dbe66b11e 100644
--- a/drivers/iio/accel/st_accel_buffer.c
+++ b/drivers/iio/accel/st_accel_buffer.c
@@ -19,8 +19,8 @@
#include <linux/iio/buffer.h>
#include <linux/iio/trigger_consumer.h>
#include <linux/iio/triggered_buffer.h>
-
#include <linux/iio/common/st_sensors.h>
+#include <linux/pm_runtime.h>
#include "st_accel.h"
int st_accel_trig_set_state(struct iio_trigger *trig, bool state)
@@ -32,7 +32,9 @@ int st_accel_trig_set_state(struct iio_trigger *trig, bool state)
static int st_accel_buffer_preenable(struct iio_dev *indio_dev)
{
- return st_sensors_power_enable(indio_dev);
+ pm_runtime_get_sync(indio_dev->dev.parent);
+
+ return 0;
}
static int st_accel_buffer_postenable(struct iio_dev *indio_dev)
@@ -76,7 +78,8 @@ static int st_accel_buffer_predisable(struct iio_dev *indio_dev)
if (err < 0)
goto st_accel_buffer_predisable_error;
- err = st_sensors_power_disable(indio_dev);
+ pm_runtime_mark_last_busy(indio_dev->dev.parent);
+ pm_runtime_put_autosuspend(indio_dev->dev.parent);
st_accel_buffer_predisable_error:
kfree(adata->buffer_data);