* [PATCH v2] iio: inv_mpu6050: Clear timestamps fifo while resetting hardware fifo
@ 2015-02-18 18:05 Viorel Suman
2015-02-21 19:00 ` Jonathan Cameron
0 siblings, 1 reply; 6+ messages in thread
From: Viorel Suman @ 2015-02-18 18:05 UTC (permalink / raw)
To: Jonathan Cameron, linux-iio; +Cc: linux-kernel, Viorel Suman
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@gmail.com>
---
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);
--
2.3.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2] iio: inv_mpu6050: Clear timestamps fifo while resetting hardware fifo
2015-02-18 18:05 [PATCH v2] iio: inv_mpu6050: Clear timestamps fifo while resetting hardware fifo Viorel Suman
@ 2015-02-21 19:00 ` Jonathan Cameron
2015-02-26 18:35 ` Ge Gao
0 siblings, 1 reply; 6+ messages in thread
From: Jonathan Cameron @ 2015-02-21 19:00 UTC (permalink / raw)
To: Viorel Suman, linux-iio; +Cc: linux-kernel, Srinivas Pandruvada, Ge Gao
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@gmail.com>
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);
>
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH v2] iio: inv_mpu6050: Clear timestamps fifo while resetting hardware fifo
2015-02-21 19:00 ` Jonathan Cameron
@ 2015-02-26 18:35 ` Ge Gao
0 siblings, 0 replies; 6+ messages in thread
From: Ge Gao @ 2015-02-26 18:35 UTC (permalink / raw)
To: Jonathan Cameron, Viorel Suman, linux-iio
Cc: linux-kernel, Srinivas Pandruvada
Look fine to me.
Thanks.
Best Regards,
Ge GAO
-----Original Message-----
From: Jonathan Cameron [mailto:jic23@kernel.org]
Sent: Saturday, February 21, 2015 11:01 AM
To: Viorel Suman; linux-iio@vger.kernel.org
Cc: linux-kernel@vger.kernel.org; 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@gmail.com>
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);
>
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH v2] iio: inv_mpu6050: Clear timestamps fifo while resetting hardware fifo
@ 2015-02-26 18:35 ` Ge Gao
0 siblings, 0 replies; 6+ messages in thread
From: Ge Gao @ 2015-02-26 18:35 UTC (permalink / raw)
To: Jonathan Cameron, Viorel Suman, linux-iio
Cc: linux-kernel, Srinivas Pandruvada
Look fine to me.
Thanks.
Best Regards,
Ge GAO
-----Original Message-----
From: Jonathan Cameron [mailto:jic23@kernel.org]=20
Sent: Saturday, February 21, 2015 11:01 AM
To: Viorel Suman; linux-iio@vger.kernel.org
Cc: linux-kernel@vger.kernel.org; Srinivas Pandruvada; Ge Gao
Subject: Re: [PATCH v2] iio: inv_mpu6050: Clear timestamps fifo while reset=
ting hardware fifo
On 18/02/15 18:05, Viorel Suman wrote:
> A hardware fifo reset always imply an invalidation of the existing=20
> timestamps, so we'll clear timestamps fifo on successfull hardware=20
> fifo reset.
>=20
> Signed-off-by: Viorel Suman <viorel.suman@gmail.com>
Looks sensible to me. Ge / Srinivas?
> ---
> v2: Addressed Jonathan's comment regarding the subject prefix.
>=20
> drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c | 25=20
> ++++++++++++++-----------
> 1 file changed, 14 insertions(+), 11 deletions(-)
>=20
> diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c=20
> 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"
> =20
> +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 @@=20
> reset_fifo_fail:
> return result;
> }
> =20
> -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 inte=
rrupt.
> */
> @@ -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);
> =20
>=20
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] iio: inv_mpu6050: Clear timestamps fifo while resetting hardware fifo
2015-02-26 18:35 ` Ge Gao
(?)
@ 2015-03-08 11:31 ` Jonathan Cameron
2015-03-08 11:33 ` Jonathan Cameron
-1 siblings, 1 reply; 6+ messages in thread
From: Jonathan Cameron @ 2015-03-08 11:31 UTC (permalink / raw)
To: Ge Gao, Viorel Suman, linux-iio; +Cc: linux-kernel, Srinivas Pandruvada
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@kernel.org]
> Sent: Saturday, February 21, 2015 11:01 AM
> To: Viorel Suman; linux-iio@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org; 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@gmail.com>
> 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);
>>
>>
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] iio: inv_mpu6050: Clear timestamps fifo while resetting hardware fifo
2015-03-08 11:31 ` Jonathan Cameron
@ 2015-03-08 11:33 ` Jonathan Cameron
0 siblings, 0 replies; 6+ messages in thread
From: Jonathan Cameron @ 2015-03-08 11:33 UTC (permalink / raw)
To: Ge Gao, Viorel Suman, linux-iio; +Cc: linux-kernel, Srinivas Pandruvada
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@kernel.org]
>> Sent: Saturday, February 21, 2015 11:01 AM
>> To: Viorel Suman; linux-iio@vger.kernel.org
>> Cc: linux-kernel@vger.kernel.org; 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@gmail.com>
>> 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@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2015-03-08 11:33 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-18 18:05 [PATCH v2] iio: inv_mpu6050: Clear timestamps fifo while resetting hardware fifo Viorel Suman
2015-02-21 19:00 ` Jonathan Cameron
2015-02-26 18:35 ` Ge Gao
2015-02-26 18:35 ` Ge Gao
2015-03-08 11:31 ` Jonathan Cameron
2015-03-08 11:33 ` Jonathan Cameron
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.