iio: adc: hx711: use struct with aligned_s64 timestamp
authorDavid Lechner <dlechner@baylibre.com>
Fri, 18 Apr 2025 19:58:22 +0000 (14:58 -0500)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Wed, 21 May 2025 13:20:27 +0000 (14:20 +0100)
Use a struct with aligned s64_timestamp instead of a padded array for
the buffer used for iio_push_to_buffers_with_ts(). This makes it easier
to see the correctness of the size and alignment of the buffer.

Signed-off-by: David Lechner <dlechner@baylibre.com>
Link: https://patch.msgid.link/20250418-iio-prefer-aligned_s64-timestamp-v1-3-4c6080710516@baylibre.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/hx711.c

index 8da0419ecfa3575aa54a93707c681ec8ced28be8..7235fa9e13d57c693751757c5d40e8a799622f17 100644 (file)
@@ -87,7 +87,10 @@ struct hx711_data {
         * triggered buffer
         * 2x32-bit channel + 64-bit naturally aligned timestamp
         */
-       u32                     buffer[4] __aligned(8);
+       struct {
+               u32 channel[2];
+               aligned_s64 timestamp;
+       } buffer;
        /*
         * delay after a rising edge on SCK until the data is ready DOUT
         * this is dependent on the hx711 where the datasheet tells a
@@ -361,15 +364,15 @@ static irqreturn_t hx711_trigger(int irq, void *p)
 
        mutex_lock(&hx711_data->lock);
 
-       memset(hx711_data->buffer, 0, sizeof(hx711_data->buffer));
+       memset(&hx711_data->buffer, 0, sizeof(hx711_data->buffer));
 
        iio_for_each_active_channel(indio_dev, i) {
-               hx711_data->buffer[j] = hx711_reset_read(hx711_data,
+               hx711_data->buffer.channel[j] = hx711_reset_read(hx711_data,
                                        indio_dev->channels[i].channel);
                j++;
        }
 
-       iio_push_to_buffers_with_timestamp(indio_dev, hx711_data->buffer,
+       iio_push_to_buffers_with_timestamp(indio_dev, &hx711_data->buffer,
                                                        pf->timestamp);
 
        mutex_unlock(&hx711_data->lock);