public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3] iio: chemical: bme680: Fix measurement wait duration calculation
@ 2026-02-05 14:55 Chris Spencer
  2026-02-05 20:30 ` Jonathan Cameron
  0 siblings, 1 reply; 2+ messages in thread
From: Chris Spencer @ 2026-02-05 14:55 UTC (permalink / raw)
  To: jic23; +Cc: linux-iio, linux-kernel, vassilisamir, Chris Spencer, stable

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.

Fixes: 4241665e6ea0 ("iio: chemical: bme680: Fix sensor data read operation")
Link: https://github.com/boschsensortec/BME68x_SensorAPI/blob/v4.4.8/bme68x.c#L521
Signed-off-by: Chris Spencer <spencercw@gmail.com>
Acked-by: Vasileios Amoiridis <vassilisamir@gmail.com>
Cc: stable@vger.kernel.org
---
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(-)

diff --git a/drivers/iio/chemical/bme680_core.c b/drivers/iio/chemical/bme680_core.c
index 70f81c4a96ba..24e0b59e2fdf 100644
--- a/drivers/iio/chemical/bme680_core.c
+++ b/drivers/iio/chemical/bme680_core.c
@@ -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);
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v3] iio: chemical: bme680: Fix measurement wait duration calculation
  2026-02-05 14:55 [PATCH v3] iio: chemical: bme680: Fix measurement wait duration calculation Chris Spencer
@ 2026-02-05 20:30 ` Jonathan Cameron
  0 siblings, 0 replies; 2+ messages in thread
From: Jonathan Cameron @ 2026-02-05 20:30 UTC (permalink / raw)
  To: Chris Spencer; +Cc: linux-iio, linux-kernel, vassilisamir, stable

On Thu,  5 Feb 2026 14:55:45 +0000
Chris Spencer <spencercw@gmail.com> 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.
> 
> Adjust the constant to match the Bosch implementation and resolve the EBUSY
> errors.
> 
> Fixes: 4241665e6ea0 ("iio: chemical: bme680: Fix sensor data read operation")
> Link: https://github.com/boschsensortec/BME68x_SensorAPI/blob/v4.4.8/bme68x.c#L521
> Signed-off-by: Chris Spencer <spencercw@gmail.com>
> Acked-by: Vasileios Amoiridis <vassilisamir@gmail.com>
> Cc: stable@vger.kernel.org
Applied to the fixes-togreg branch of iio.git

Thanks.

Jonathan

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-02-05 20:30 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-05 14:55 [PATCH v3] iio: chemical: bme680: Fix measurement wait duration calculation Chris Spencer
2026-02-05 20:30 ` Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox