diff options
Diffstat (limited to 'drivers/iio/magnetometer/st_magn_buffer.c')
-rw-r--r-- | drivers/iio/magnetometer/st_magn_buffer.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/iio/magnetometer/st_magn_buffer.c b/drivers/iio/magnetometer/st_magn_buffer.c index 29f18cd506ee..618c67d5ed31 100644 --- a/drivers/iio/magnetometer/st_magn_buffer.c +++ b/drivers/iio/magnetometer/st_magn_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_magn.h" int st_magn_trig_set_state(struct iio_trigger *trig, bool state) @@ -32,7 +32,9 @@ int st_magn_trig_set_state(struct iio_trigger *trig, bool state) static int st_magn_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_magn_buffer_postenable(struct iio_dev *indio_dev) @@ -67,7 +69,8 @@ static int st_magn_buffer_predisable(struct iio_dev *indio_dev) if (err < 0) goto st_magn_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_magn_buffer_predisable_error: kfree(mdata->buffer_data); |