Re: [PATCH v2] iio: inv_mpu6050: Clear timestamps fifo while resetting hardware fifo

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux