[PATCH 0/5] iio: imu: inv_mpu6050: add new timestamping mechanism

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

 



The purpose of this series is to implement a new timestamping mechanism able to cope with missing and delayed interrupts.

Since our system is not real-time, there will be cases where interrupts with higher priorities will prevent the execution of our interrupt handler. We need to be able to deal with it and keep an accurate timestamp for data. We will not loose data since chips have a FIFO, but we will loose interrupt timestamps.

The main idea in this mechanism is first to validate interrupt timestamps, and then use them to estimate the chip internal clock from system side. For validating an interrupt timestamp, we compute the delta time between 2 interrupts and divide it by the chip divider to come back to the chip internal 1KHz frequency. If the value matches 1KHz by +/- 4%, we consider it to be valid. In this case, we use the interrupt timestamps for the data and the computed interval for estimating the chip internal frequency (doing a mean with the precedent value for a low-pass filtering). If the value doesn't match the 4% criteria, we drop the timestamp and we compute a new one using the precedent value and the estimated chip frequency.

The first patches of the series are some cleanup needed for this implementation :
* patch 1: get rid of the timestamps FIFO (was in fact useless)
* patch 2: replace fifo rate in Hz by the sample rate divider needed by the timestamp mechanism. Sample rate divider is equivalent to fifo rate.
* patch 3: fix fifo count reading by ignoring incomplete datum (can happen)
* patch 4: fix fifo overflowing by using more accurate int status bit
* patch 5: the new timestamp mechanism

Martin,
any feedback from your platform where the issue appears a lot are welcome.

Thanks.
JB
--
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