On 08/03/15 11:31, Jonathan Cameron wrote: > 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. Forgot to say - marked for stable as well. > > 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 > -- 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