[PATCH 00/10] iio: prefer aligned_s64 timestamp (round 1)
David Lechner
dlechner at baylibre.com
Fri Apr 18 12:58:19 PDT 2025
While reviewing the recent conversion to iio_push_to_buffers_with_ts(),
I found it very time-consuming to check the correctness of the buffers
passed to that function when they used an array with extra room at the
end for a timestamp. And we still managed find a few that were wrongly
sized or not properly aligned despite several efforts in the past to
audit these for correctness already.
Even though these ones look to be correct, it will still be easier for
future readers of the code if we follow the pattern of using a struct
with the array and timestamp instead.
For example, it is much easier to see that:
struct {
__be32 data[3];
aligned_s64 timestamp;
} buffer;
Is an array of 3 32-bit, big-endian raw values plus an aligned 64-bit
timestamp than:
/*
* 3 words for actual data, 1 word for padding for correct alignment
* of timestamp and 2 words for actual timestamp.
*/
__be32 buffer[6] __aligned(8);
There are plenty more drivers where we could make similar changes, but
this is enough for one week of reviews.
---
David Lechner (10):
iio: accel: sca3300: use struct with aligned_s64 timestamp
iio: adc: at91-sama5d2_adc: use struct with aligned_s64 timestamp
iio: adc: hx711: use struct with aligned_s64 timestamp
iio: adc: mxs-lradc-adc: use struct with aligned_s64 timestamp
iio: adc: stm32-adc: use struct with aligned_s64 timestamp
iio: adc: ti-adc0832: use struct with aligned_s64 timestamp
iio: adc: ti-adc12138: use struct with aligned_s64 timestamp
iio: adc: ti-ads124s08: use struct with aligned_s64 timestamp
iio: adc: ti-ads8688: use struct with aligned_s64 timestamp
iio: chemical: atlas-sensor: use struct with aligned_s64 timestamp
drivers/iio/accel/sca3300.c | 18 ++++++------------
drivers/iio/adc/at91-sama5d2_adc.c | 25 ++++++++++---------------
drivers/iio/adc/hx711.c | 11 +++++++----
drivers/iio/adc/mxs-lradc-adc.c | 13 ++++++++-----
drivers/iio/adc/stm32-adc.c | 12 ++++++++----
drivers/iio/adc/ti-adc0832.c | 15 +++++++--------
drivers/iio/adc/ti-adc12138.c | 12 ++++++++----
drivers/iio/adc/ti-ads124s08.c | 18 +++++++-----------
drivers/iio/adc/ti-ads8688.c | 12 ++++++++----
drivers/iio/chemical/atlas-sensor.c | 11 +++++++----
10 files changed, 76 insertions(+), 71 deletions(-)
---
base-commit: aff301f37e220970c2f301b5c65a8bfedf52058e
change-id: 20250418-iio-prefer-aligned_s64-timestamp-fee64ec55405
Best regards,
--
David Lechner <dlechner at baylibre.com>
More information about the linux-arm-kernel
mailing list