On Wed, 12 Feb 2020 18:40:48 +0100 Jean-Baptiste Maneyrol <jmaneyrol@xxxxxxxxxxxxxx> wrote: > Temperature sensor works correctly only when accel and/or gyro > is turned on. Prevent polling value if they are not running. > Anyway it doesn't make sense to use it without sensor engines > on. > > Signed-off-by: Jean-Baptiste Maneyrol <jmaneyrol@xxxxxxxxxxxxxx> > --- > drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c > index f698d2aa61f4..3212030cc083 100644 > --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c > +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c > @@ -597,6 +597,11 @@ static int inv_mpu6050_read_channel_data(struct iio_dev *indio_dev, > chan->channel2, val); > break; > case IIO_TEMP: > + /* temperature sensor work only with accel and/or gyro */ > + if (!st->chip_config.accl_en && !st->chip_config.gyro_en) { > + result = -ENOTSUPP; I'd suggest -EBUSY to indicate that it might work sometime in the future. > + goto error_power_off; > + } > if (!st->chip_config.temp_en) { > result = inv_mpu6050_switch_engine(st, true, > INV_MPU6050_SENSOR_TEMP);