Re: [PATCH 1/1] iio:imu: adis16475: Fix sync mode setting

From: Jonathan Cameron
Date: Sat Apr 06 2024 - 11:39:48 EST


On Wed, 3 Apr 2024 14:13:57 +0300
Ramona Gradinariu <ramona.gradinariu@xxxxxxxxxx> wrote:

> Fix sync mode setting by applying the necessary shift bits.
>
> Fixes: fff7352bf7a3 ("iio: imu: Add support for adis16475")
> Signed-off-by: Ramona Gradinariu <ramona.gradinariu@xxxxxxxxxx>
> ---
> drivers/iio/imu/adis16475.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/iio/imu/adis16475.c b/drivers/iio/imu/adis16475.c
> index 01f55cc902fa..bd30c3469d9a 100644
> --- a/drivers/iio/imu/adis16475.c
> +++ b/drivers/iio/imu/adis16475.c
> @@ -1351,7 +1351,8 @@ static int adis16475_config_sync_mode(struct adis16475 *st)
> * in chip_info.
> */
> ret = __adis_update_bits(&st->adis, ADIS16475_REG_MSG_CTRL,
> - ADIS16475_SYNC_MODE_MASK, sync->sync_mode);
> + ADIS16475_SYNC_MODE_MASK,
> + ADIS16475_SYNC_MODE(sync->sync_mode));
As per the build bots, this is triggering a check on the size the last variable.
See definition of adis_update_bits()
There is even a comment in there to 'beware' of what you hit here.

Easiest is probably to force that with
(u16)ADIS16475_SYNC_MODE(sync->sync_mode));
or a local variable.


> if (ret)
> return ret;
>