On Sat, May 1, 2021 at 10:03 AM Jonathan Cameron <jic23@xxxxxxxxxx> wrote: > > From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > > To make code more readable, use a structure to express the channel > layout and ensure the timestamp is 8 byte aligned. > > Found during an audit of all calls of uses of > iio_push_to_buffers_with_timestamp() > > Fixes: cb119d535083 ("iio: proximity: add support for PulsedLight LIDAR") > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> Acked-by: Matt Ranostay <matt.ranostay@xxxxxxxxxxxx> > Cc: Matt Ranostay <matt.ranostay@xxxxxxxxxxxx> > --- > drivers/iio/proximity/pulsedlight-lidar-lite-v2.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c b/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c > index c685f10b5ae4..822a68ae5e03 100644 > --- a/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c > +++ b/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c > @@ -44,7 +44,11 @@ struct lidar_data { > int (*xfer)(struct lidar_data *data, u8 reg, u8 *val, int len); > int i2c_enabled; > > - u16 buffer[8]; /* 2 byte distance + 8 byte timestamp */ > + /* Ensure timestamp is naturally aligned */ > + struct { > + u16 chan; > + s64 timestamp __aligned(8); > + } scan; > }; > > static const struct iio_chan_spec lidar_channels[] = { > @@ -229,9 +233,9 @@ static irqreturn_t lidar_trigger_handler(int irq, void *private) > struct lidar_data *data = iio_priv(indio_dev); > int ret; > > - ret = lidar_get_measurement(data, data->buffer); > + ret = lidar_get_measurement(data, &data->scan.chan); > if (!ret) { > - iio_push_to_buffers_with_timestamp(indio_dev, data->buffer, > + iio_push_to_buffers_with_timestamp(indio_dev, &data->scan, > iio_get_time_ns(indio_dev)); > } else if (ret != -EINVAL) { > dev_err(&data->client->dev, "cannot read LIDAR measurement"); > -- > 2.31.1 >