On Sat, 11 Jan 2020 16:19:11 +0100 Michał Mirosław <mirq-linux@xxxxxxxxxxxx> wrote: > Make mpu6050 usable on platforms which provide only any-edge interrupts. > One example of this kind of platform is AT91SAM9G45 > > Signed-off-by: Michał Mirosław <mirq-linux@xxxxxxxxxxxx> > Acked-by: Jean-Baptiste Maneyrol <jmaneyrol@xxxxxxxxxxxxxx> Applied to the togreg branch of iio.git and pushed out as testing for the autobuilders to see if they can break anything. Thanks, Jonathan > > --- > v3: reword commit message > v2: just remove the dev_warn() message > > Signed-off-by: Michał Mirosław <mirq-linux@xxxxxxxxxxxx> > --- > drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 2 +- > drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c | 5 +---- > 2 files changed, 2 insertions(+), 5 deletions(-) > > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c > index 2261c6c4ac65..4cfdd19ee4fc 100644 > --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c > +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c > @@ -1118,7 +1118,7 @@ int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name, > irq_type = irqd_get_trigger_type(desc); > if (!irq_type) > irq_type = IRQF_TRIGGER_RISING; > - if (irq_type == IRQF_TRIGGER_RISING) > + if (irq_type & IRQF_TRIGGER_RISING) // rising or both-edge > st->irq_mask = INV_MPU6050_ACTIVE_HIGH; > else if (irq_type == IRQF_TRIGGER_FALLING) > st->irq_mask = INV_MPU6050_ACTIVE_LOW; > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c > index 72d8c5790076..a8a833f8b99b 100644 > --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c > +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c > @@ -180,11 +180,8 @@ irqreturn_t inv_mpu6050_read_fifo(int irq, void *p) > "failed to ack interrupt\n"); > goto flush_fifo; > } > - if (!(int_status & INV_MPU6050_BIT_RAW_DATA_RDY_INT)) { > - dev_warn(regmap_get_device(st->map), > - "spurious interrupt with status 0x%x\n", int_status); > + if (!(int_status & INV_MPU6050_BIT_RAW_DATA_RDY_INT)) > goto end_session; > - } > > if (!(st->chip_config.accl_fifo_enable | > st->chip_config.gyro_fifo_enable))