iio: chemical: bme680: Fix measurement wait duration calculation
Subsystems (2)
PATCH v3 1/1 iio: chemical: bme680: Fix measurement wait duration calculation
This function refers to the Bosch BME680 API as the source of the calculation, but one of the constants does not match the Bosch implementation. This appears to be a simple transposition of two digits, resulting in a wait time that is too short. This can cause the following 'device measurement cycle incomplete' check to occasionally fail, returning EBUSY to user space.
Adjust the constant to match the Bosch implementation and resolve the EBUSY errors.
---
v2: add Acked-by: Vasileios
v3: revise commit message; add Cc: stable
--- drivers/iio/chemical/bme680_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/iio/chemical/bme680_core.c +1 -1
@@ -613,7 +613,7 @@ static int bme680_wait_for_eoc(struct bme680_data *data)* + heater duration */ int wait_eoc_us = ((data->oversampling_temp + data->oversampling_press + - data->oversampling_humid) *1936 ) + (477 *4 ) + + data->oversampling_humid) *1963 ) + (477 *4 ) + (477 *5 ) +1000 + (data->heater_dur *1000 );fsleep (wait_eoc_us);
Signature · 1 line
2.43.0
Quoted 7 lines · On Thu, 5 Feb 2026 14:55:45 +0000 Chris Spencer <[email protected]> wrote:
This function refers to the Bosch BME680 API as the source of the calculation, but one of the constants does not match the Bosch implementation. This appears to be a simple transposition of two digits, resulting in a wait time that is too short. This can cause the following 'device measurement cycle incomplete' check to occasionally fail, returning EBUSY to user space.
Quoted 8 lines
Adjust the constant to match the Bosch implementation and resolve the EBUSY errors.
Fixes 4241665e6ea0 ("iio: chemical: bme680: Fix sensor data read operation")Signed-off-by Chris Spencer <[email protected]>
Applied to the fixes-togreg branch of iio.git
Thanks.
Jonathan