Re: [PATCH] iio: imu: bno055: fix BNO055_SCAN_CH_COUNT off by one

From: Jonathan Cameron

Date: Sun Mar 01 2026 - 07:27:56 EST


On Sat, 14 Feb 2026 16:33:54 -0600
David Lechner <dlechner@xxxxxxxxxxxx> wrote:

> Fix an off-by-one error in the BNO055_SCAN_CH_COUNT macro. The count
> is derived by taking the difference of the last and first register
> addresses, dividing by the size of each channel (2 bytes). It needs to
> also add 1 to account for the fact that the count is inclusive of both
> the first and last channels.
>
> Thanks to the aligned_s64 timestamp field, there was already extra
> padding in the buffer, so there were no runtime issues caused by this
> bug.
>
> Signed-off-by: David Lechner <dlechner@xxxxxxxxxxxx>
> ---
> I didn't put a Fixes: tag since this there were no runtime bugs. Didn't
> know if this was worth backporting or not.
I took the view that it isn't obvious that this is not a bug and hence
it might confuse readers in the future. So I gave it fixes tag.
Still I didn't +CC stable as agree there is no urgency to backport.

Applied to the fixes-togreg branch of iio.git.

Thanks,

Jonathan

> ---
> drivers/iio/imu/bno055/bno055.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/iio/imu/bno055/bno055.c b/drivers/iio/imu/bno055/bno055.c
> index 303bc308f80a..c96fec2ebb3e 100644
> --- a/drivers/iio/imu/bno055/bno055.c
> +++ b/drivers/iio/imu/bno055/bno055.c
> @@ -64,7 +64,7 @@
> #define BNO055_GRAVITY_DATA_X_LSB_REG 0x2E
> #define BNO055_GRAVITY_DATA_Y_LSB_REG 0x30
> #define BNO055_GRAVITY_DATA_Z_LSB_REG 0x32
> -#define BNO055_SCAN_CH_COUNT ((BNO055_GRAVITY_DATA_Z_LSB_REG - BNO055_ACC_DATA_X_LSB_REG) / 2)
> +#define BNO055_SCAN_CH_COUNT ((BNO055_GRAVITY_DATA_Z_LSB_REG - BNO055_ACC_DATA_X_LSB_REG) / 2 + 1)
> #define BNO055_TEMP_REG 0x34
> #define BNO055_CALIB_STAT_REG 0x35
> #define BNO055_CALIB_STAT_MAGN_SHIFT 0
>
> ---
> base-commit: 0713b26190addfa3a774b386c8658952ef9f7faf
> change-id: 20260214-iio-imu-bno055-count-off-by-one-3b67a0caaaf6
>
> Best regards,