The goal of this series is to rework sensors engines and power management using runtime power with autosuspend. By reducing power on/off it enables correct usage of the polling interface at low frequencies. It also simplifies a lot of things inside the driver, making it much more simpler and easier to read. The series also include several reworks required to have the implementation working. Changelog: - v2 * use runtime pm with autosuspend: - add comments and fix whitespace changes - delete ifdefs of CONFIG_PM_* and replace with __maybe_unused functions * temperature only work with accel/gyro - replace error code with EBUSY Jean-Baptiste Maneyrol (13): iio: imu: inv_mpu6050: enable i2c aux mux bypass only once iio: imu: inv_mpu6050: delete useless check iio: imu: inv_mpu6050: set power on/off only once during all init iio: imu: inv_mpu6050: simplify polling magnetometer iio: imu: inv_mpu6050: early init of chip_config for use at setup iio: imu: inv_mpu6050: add all signal path resets at init iio: imu: inv_mpu6050: fix sleep time when turning regulators on iio: imu: inv_mpu6050: rewrite power and engine management iio: imu: inv_mpu6050: fix data polling interface iio: imu: inv_mpu6050: factorize fifo enable/disable iio: imu: inv_mpu6050: dynamic sampling rate change iio: imu: inv_mpu6050: use runtime pm with autosuspend iio: imu: inv_mpu6050: temperature only work with accel/gyro drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 562 +++++++++++++----- drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c | 62 +- drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h | 38 +- drivers/iio/imu/inv_mpu6050/inv_mpu_magn.c | 49 +- drivers/iio/imu/inv_mpu6050/inv_mpu_magn.h | 5 +- drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c | 57 +- drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c | 10 +- drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c | 160 ++--- 8 files changed, 571 insertions(+), 372 deletions(-) -- 2.17.1