Skip to contentSkip to conversation

iio: chemical: bme680: Fix measurement wait duration calculation

PATCH Applied Chris Spencer 2 participants 2 messages Feb 5

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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
index 70f81c4a96ba..24e0b59e2fdf 100644
@@ -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
maintainer Applied
#1 lore raw
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.

Applied to the fixes-togreg branch of iio.git

Thanks.

Jonathan