On Tue, 26 Sep 2023 12:50:38 +0200 Nuno Sá <noname.nuno@xxxxxxxxx> wrote: > On Tue, 2023-09-26 at 11:57 +0300, Ramona Gradinariu wrote: > > The temperature channel has 16-bit storage size. We need to perform > > the padding to have the buffer elements naturally aligned in case > > the temperature channel is enabled and there are any 32-bit storage > > size channels enabled which have a scan index higher than the > > temperature channel scan index. > > > > Fixes: 8f6bc87d67c0 ("iio: imu: adis16475.c: Add delta angle and delta > > velocity channels") > > Signed-off-by: Ramona Gradinariu <ramona.gradinariu@xxxxxxxxxx> > > --- > > Reviewed-by: Nuno Sa <nuno.sa@xxxxxxxxxx> Applied to the togreg branch of iio.git. Jonathan > > > drivers/iio/imu/adis16475.c | 10 ++++++++++ > > 1 file changed, 10 insertions(+) > > > > diff --git a/drivers/iio/imu/adis16475.c b/drivers/iio/imu/adis16475.c > > index 00e4e09cdafb..9af07fec0d89 100644 > > --- a/drivers/iio/imu/adis16475.c > > +++ b/drivers/iio/imu/adis16475.c > > @@ -1197,6 +1197,16 @@ static irqreturn_t adis16475_trigger_handler(int irq, > > void *p) > > switch (bit) { > > case ADIS16475_SCAN_TEMP: > > st->data[i++] = buffer[offset]; > > + /* > > + * The temperature channel has 16-bit storage size. > > + * We need to perform the padding to have the buffer > > + * elements naturally aligned in case there are any > > + * 32-bit storage size channels enabled which have a > > + * scan index higher than the temperature channel scan > > + * index. > > + */ > > + if (*indio_dev->active_scan_mask & > > GENMASK(ADIS16475_SCAN_DELTVEL_Z, ADIS16475_SCAN_DELTANG_X)) > > + st->data[i++] = 0; > > You could use ADIS16500_BURST_DATA_SEL_1_CHN_MASK but I kind of agree like this > is more obvious what's going on... > > > break; > > case ADIS16475_SCAN_DELTANG_X ... ADIS16475_SCAN_DELTVEL_Z: > > buff_offset = ADIS16475_SCAN_DELTANG_X; >