linux-stable/drivers/iio
Steve Moskovchenko 2e7e3f1690 iio: imu: mpu6050: Fix FIFO layout for ICM20602
[ Upstream commit 1615fe41a1 ]

The MPU6050 driver has recently gained support for the
ICM20602 IMU, which is very similar to MPU6xxx. However,
the ICM20602's FIFO data specifically includes temperature
readings, which were not present on MPU6xxx parts. As a
result, the driver will under-read the ICM20602's FIFO
register, causing the same (partial) sample to be returned
for all reads, until the FIFO overflows.

Fix this by adding a table of scan elements specifically
for the ICM20602, which takes the extra temperature data
into consideration.

While we're at it, fix the temperature offset and scaling
on ICM20602, since it uses different scale/offset constants
than the rest of the MPU6xxx devices.

Signed-off-by: Steve Moskovchenko <stevemo@skydio.com>
Fixes: 22904bdff9 ("iio: imu: mpu6050: Add support for the ICM 20602 IMU")
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-11-12 19:21:22 +01:00
..
accel iio: fix center temperature of bmc150-accel-core 2019-11-06 13:05:40 +01:00
adc iio: adc: stm32-adc: fix stopping dma 2019-11-12 19:20:40 +01:00
afe iio: afe: rescale: new driver 2018-04-28 18:03:22 +01:00
amplifiers iio: amplifiers: ad8366: move channel init before iio_device_register() 2018-05-22 18:13:45 +01:00
buffer iio:kfifo_buf: check for uint overflow 2018-03-30 11:16:12 +01:00
chemical iio:chemical:bme680: Fix SPI read interface 2019-04-27 09:36:34 +02:00
common iio: common: ssp_sensors: Initialize calculated_time in ssp_common_process_data 2019-05-31 06:46:25 -07:00
counter iio: 104-quad-8: Provide defines for magic numbers 2018-06-10 11:52:30 +01:00
dac iio: dac: ds4422/ds4424 fix chip verification 2019-06-09 09:17:15 +02:00
dummy iio:dummy: Add extra paragraphs on Kconfig 2018-03-03 15:20:16 +00:00
frequency Merge branch 'fixes-togreg' into togreg 2018-08-01 18:56:17 +01:00
gyro iio/gyro/bmg160: Use millidegrees for temperature scale 2019-04-27 09:36:34 +02:00
health iio: add SPDX identifier for various drivers 2018-02-18 11:55:19 +00:00
humidity iio/hid-sensors: Fix IIO_CHAN_INFO_RAW returning wrong values for signed numbers 2018-12-05 19:32:13 +01:00
imu iio: imu: mpu6050: Fix FIFO layout for ICM20602 2019-11-12 19:21:22 +01:00
light iio: light: opt3001: fix mutex unlock race 2019-10-17 13:45:13 -07:00
magnetometer iio: hmc5843: fix potential NULL pointer dereferences 2019-05-31 06:46:25 -07:00
multiplexer treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
orientation iio/hid-sensors: Fix IIO_CHAN_INFO_RAW returning wrong values for signed numbers 2018-12-05 19:32:13 +01:00
potentiometer iio: potentiometer: mcp4531: switch to using .probe_new 2018-04-15 18:12:51 +01:00
potentiostat iio: potentiostat: lmp91000: add LMP91002 support 2018-05-12 11:02:44 +01:00
pressure iio/hid-sensors: Fix IIO_CHAN_INFO_RAW returning wrong values for signed numbers 2018-12-05 19:32:13 +01:00
proximity iio: srf04: fix wrong limitation in distance measuring 2019-11-12 19:20:40 +01:00
resolver staging: iio: ad2s1200: Move driver out of staging 2018-05-20 12:17:48 +01:00
temperature iio: temperature: mlx90632 Relax the compatibility check 2019-06-25 11:35:54 +08:00
trigger
iio_core.h
iio_core_trigger.h
industrialio-buffer.c iio: Fix scan mask selection 2019-04-27 09:36:35 +02:00
industrialio-configfs.c
industrialio-core.c iio: core: fix a possible circular locking dependency 2019-04-27 09:36:35 +02:00
industrialio-event.c vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
industrialio-sw-device.c
industrialio-sw-trigger.c
industrialio-trigger.c
industrialio-triggered-event.c
inkern.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
Kconfig staging: iio: ad2s1200: Move driver out of staging 2018-05-20 12:17:48 +01:00
Makefile staging: iio: ad2s1200: Move driver out of staging 2018-05-20 12:17:48 +01:00