summaryrefslogtreecommitdiffstats
path: root/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c
diff options
context:
space:
mode:
authorJean-Baptiste Maneyrol <jmaneyrol@invensense.com>2018-04-30 12:14:10 +0200
committerJonathan Cameron <Jonathan.Cameron@huawei.com>2018-05-06 17:56:26 +0100
commitc2b82a690c9bc5dd1da4c12150dc2a0d3d570e97 (patch)
tree0e7ac0380a391689e82dc42dd25b4996bec30a97 /drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c
parentca4c8fc97e669d7464a95e006d0ca4eadfa4e4bc (diff)
downloadlinux-c2b82a690c9bc5dd1da4c12150dc2a0d3d570e97.tar.bz2
iio: imu: inv_mpu6050: skip first sample when gyro is on
Implement generic skip first samples mechanism and use it to filter out first sample when gyro is on. The problem for these chips is that the first sample of the gyro is out of specs, because gyro is not completely stabilized. To ensure all data are within sensor specs, we just skip the first sample when turning gyro on. Signed-off-by: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Diffstat (limited to 'drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c')
-rw-r--r--drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c
index e51404fdce97..1b5735474728 100644
--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c
+++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c
@@ -185,7 +185,12 @@ irqreturn_t inv_mpu6050_read_fifo(int irq, void *p)
if (result == 0)
timestamp = 0;
- iio_push_to_buffers_with_timestamp(indio_dev, data, timestamp);
+ /* skip first samples if needed */
+ if (st->skip_samples)
+ st->skip_samples--;
+ else
+ iio_push_to_buffers_with_timestamp(indio_dev, data,
+ timestamp);
fifo_count -= bytes_per_datum;
}