Re: [PATCH 0/5] iio: accel: adxl3xx: Add timestamps to FIFO data

From: Andy Shevchenko

Date: Sun May 10 2026 - 08:58:30 EST


On Sun, May 10, 2026 at 11:25:51AM +0300, Md Shofiqul Islam wrote:
> Five ADXL-family accelerometer drivers (ADXL313, ADXL345, ADXL367,
> ADXL372, ADXL380) push buffered samples using iio_push_to_buffers(),
> which does not attach a hardware timestamp to the scan data.
> Userspace consumers therefore receive samples with no timing
> information.
>
> This series adds timestamp support uniformly across the family:
>
> - A scan buffer struct with an aligned_s64 ts field is added to each
> driver's state struct. The struct layout ensures the timestamp
> field sits at an 8-byte aligned offset as required by
> iio_push_to_buffers_with_timestamp().
>
> - In the FIFO push loop, FIFO data is copied into scan.channels via
> memcpy(), then iio_push_to_buffers_with_timestamp() is called with
> a single timestamp captured once per interrupt with
> iio_get_time_ns(). Using one timestamp per IRQ is consistent with
> the existing approach in the same handlers for event timestamps.
>
> - For ADXL367, the helper adxl367_push_fifo_data() gains a s64 ts
> parameter so the timestamp captured in the IRQ handler is passed
> through instead of calling iio_get_time_ns() a second time.
>
> - For ADXL372 and ADXL380, where the IRQ handler already called
> iio_get_time_ns() for the event push, the same captured timestamp
> is now also passed to the FIFO push, removing the duplicate call.
>
> The ADXL313 and ADXL345 drivers always scan all three axes together
> (available_scan_masks contains only the full X|Y|Z mask), so their
> scan buffer layout is fixed. The ADXL367, ADXL372, and ADXL380
> drivers support variable scan masks; fifo_set_size tracks the number
> of enabled channels per sample set and is used as the memcpy length.

This is sensitive change. Do we have any confirmation that this
- does work as expected on real HW and platforms that use these devices
- does not break any ABI

--
With Best Regards,
Andy Shevchenko