On 26/02/15 18:35, Ge Gao wrote: > Look fine to me. > Thanks. > > Best Regards, > > Ge GAO > Formal Acks preferred ;) Anyhow, applied to the fixes-togreg branch of iio.git. Thanks, Jonathan > > -----Original Message----- > From: Jonathan Cameron [mailto:jic23@xxxxxxxxxx] > Sent: Saturday, February 21, 2015 11:01 AM > To: Viorel Suman; linux-iio@xxxxxxxxxxxxxxx > Cc: linux-kernel@xxxxxxxxxxxxxxx; Srinivas Pandruvada; Ge Gao > Subject: Re: [PATCH v2] iio: inv_mpu6050: Clear timestamps fifo while resetting hardware fifo > > On 18/02/15 18:05, Viorel Suman wrote: >> A hardware fifo reset always imply an invalidation of the existing >> timestamps, so we'll clear timestamps fifo on successfull hardware >> fifo reset. >> >> Signed-off-by: Viorel Suman <viorel.suman@xxxxxxxxx> > Looks sensible to me. Ge / Srinivas? >> --- >> v2: Addressed Jonathan's comment regarding the subject prefix. >> >> drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c | 25 >> ++++++++++++++----------- >> 1 file changed, 14 insertions(+), 11 deletions(-) >> >> diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c >> b/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c >> index 0cd306a..ba27e27 100644 >> --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c >> +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c >> @@ -24,6 +24,16 @@ >> #include <linux/poll.h> >> #include "inv_mpu_iio.h" >> >> +static void inv_clear_kfifo(struct inv_mpu6050_state *st) { >> + unsigned long flags; >> + >> + /* take the spin lock sem to avoid interrupt kick in */ >> + spin_lock_irqsave(&st->time_stamp_lock, flags); >> + kfifo_reset(&st->timestamps); >> + spin_unlock_irqrestore(&st->time_stamp_lock, flags); } >> + >> int inv_reset_fifo(struct iio_dev *indio_dev) { >> int result; >> @@ -50,6 +60,10 @@ int inv_reset_fifo(struct iio_dev *indio_dev) >> INV_MPU6050_BIT_FIFO_RST); >> if (result) >> goto reset_fifo_fail; >> + >> + /* clear timestamps fifo */ >> + inv_clear_kfifo(st); >> + >> /* enable interrupt */ >> if (st->chip_config.accl_fifo_enable || >> st->chip_config.gyro_fifo_enable) { @@ -83,16 +97,6 @@ >> reset_fifo_fail: >> return result; >> } >> >> -static void inv_clear_kfifo(struct inv_mpu6050_state *st) -{ >> - unsigned long flags; >> - >> - /* take the spin lock sem to avoid interrupt kick in */ >> - spin_lock_irqsave(&st->time_stamp_lock, flags); >> - kfifo_reset(&st->timestamps); >> - spin_unlock_irqrestore(&st->time_stamp_lock, flags); >> -} >> - >> /** >> * inv_mpu6050_irq_handler() - Cache a timestamp at each data ready interrupt. >> */ >> @@ -184,7 +188,6 @@ end_session: >> flush_fifo: >> /* Flush HW and SW FIFOs. */ >> inv_reset_fifo(indio_dev); >> - inv_clear_kfifo(st); >> mutex_unlock(&indio_dev->mlock); >> iio_trigger_notify_done(indio_dev->trig); >> >> > -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html