mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Jonathan Cameron <jic23@kernel.org>
Cc: "Josef Bacik" <josef@toxicpanda.com>,
	linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	stable <stable@kernel.org>,
	"David Lechner" <dlechner@baylibre.com>,
	"Nuno Sá" <nuno.sa@analog.com>,
	"Andy Shevchenko" <andy@kernel.org>,
	"Lucas Rabaquim" <lucas.rabaquim@usp.br>,
	"Matheus Silveira" <matheus.feitosa@usp.br>,
	"Stepan Ionichev" <sozdayvek@gmail.com>,
	"Joe Sandom" <joe.g.sandom@gmail.com>
Subject: [PATCH 10/15] iio: light: tsl2591: don't divide by zero with low gain
Date: Tue, 27 Oct 2026 17:19:14 +0100	[thread overview]
Message-ID: <20261027-llm-char-misc-iio-v1-10-0d818334f6c7@linuxfoundation.org> (raw)
In-Reply-To: <20261027-llm-char-misc-iio-v1-0-0d818334f6c7@linuxfoundation.org>

From: Josef Bacik <josef@toxicpanda.com>

The number of counts per lux is the integration time in milliseconds times
the gain, divided by 408.  With the low gain, which is 1, and an
integration time of 100 to 400 ms, that is 0 in integer arithmetic, and
each read of the illuminance divides by zero.

In that case, multiply by the coefficient and divide by the product
instead.  The result of the other settings does not change.

Fixes: 2335f0d7c790 ("iio: light: Added AMS tsl2591 driver implementation")
Cc: stable <stable@kernel.org>
Cc: David Lechner <dlechner@baylibre.com>
Cc: "Nuno Sá" <nuno.sa@analog.com>
Cc: Andy Shevchenko <andy@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lucas Rabaquim <lucas.rabaquim@usp.br>
Cc: Matheus Silveira <matheus.feitosa@usp.br>
Cc: Josef Bacik <josef@toxicpanda.com>
Cc: Stepan Ionichev <sozdayvek@gmail.com>
Cc: Joe Sandom <joe.g.sandom@gmail.com>
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/iio/light/tsl2591.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/light/tsl2591.c b/drivers/iio/light/tsl2591.c
index 286dc09e170f..773b50c17e71 100644
--- a/drivers/iio/light/tsl2591.c
+++ b/drivers/iio/light/tsl2591.c
@@ -16,6 +16,7 @@
 #include <linux/interrupt.h>
 #include <linux/iopoll.h>
 #include <linux/kernel.h>
+#include <linux/math64.h>
 #include <linux/module.h>
 #include <linux/mutex.h>
 #include <linux/pm_runtime.h>
@@ -424,8 +425,13 @@ static int tsl2591_read_channel_data(struct iio_dev *indio_dev,
 		}
 
 		/* Calculate lux value */
-		lux = ((als_ch0 - als_ch1) *
-		       (1000 - ((als_ch1 * 1000) / als_ch0))) / counts_per_lux;
+		lux = (als_ch0 - als_ch1) *
+		      (1000 - ((als_ch1 * 1000) / als_ch0));
+		if (counts_per_lux)
+			lux /= counts_per_lux;
+		else	/* Less than one count per lux */
+			lux = div_s64((s64)lux * TSL2591_LUX_COEFFICIENT,
+				      int_time_fval * gain_multi);
 
 		dev_dbg(&client->dev, "Raw lux calculation: %d\n", lux);
 

-- 
2.56.0


  parent reply	other threads:[~2026-10-27 16:19 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-27 16:19 [PATCH 00/15] IIO: a bunch of llm-found fixes Greg Kroah-Hartman
2026-10-27 16:19 ` [PATCH 01/15] iio: buffer: let the block keep its DMA fence Greg Kroah-Hartman
2026-10-28  9:30   ` Nuno Sá
2026-10-29 14:40     ` Nuno Sá
2026-10-29 15:43   ` Benoît Monin
2026-10-27 16:19 ` [PATCH 02/15] iio: trigger: fail the attach if no sub-IRQ is left Greg Kroah-Hartman
2026-10-28  9:38   ` Nuno Sá
2026-11-01  2:53     ` Jonathan Cameron
2026-10-27 16:19 ` [PATCH 03/15] iio: accel: adxl367: don't stay in standby on -EINVAL Greg Kroah-Hartman
2026-10-28 10:01   ` Nuno Sá
2026-10-27 16:19 ` [PATCH 04/15] iio: accel: adxl380: " Greg Kroah-Hartman
2026-10-28 10:02   ` Nuno Sá
2026-11-01  2:26     ` Jonathan Cameron
2026-10-27 16:19 ` [PATCH 05/15] iio: adc: check the result of ad_sd_init() Greg Kroah-Hartman
2026-10-28  9:40   ` Nuno Sá
2026-11-01  2:23     ` Jonathan Cameron
2026-10-27 16:19 ` [PATCH 06/15] iio: adc: ad7923: add the AD7927 to the SPI ID table Greg Kroah-Hartman
2026-10-28  9:35   ` Nuno Sá
2026-11-01  2:22     ` Jonathan Cameron
2026-10-27 16:19 ` [PATCH 07/15] iio: addac: ad74413r: fix the values of set_multiple Greg Kroah-Hartman
2026-10-28  9:38   ` Nuno Sá
2026-11-01  2:21     ` Jonathan Cameron
2026-10-27 16:19 ` [PATCH 08/15] iio: light: apds9306: push events to the IIO device Greg Kroah-Hartman
2026-11-01  2:20   ` Jonathan Cameron
2026-10-27 16:19 ` [PATCH 09/15] iio: light: tsl2591: don't divide by zero in the dark Greg Kroah-Hartman
2026-10-30  8:24   ` Joshua Crofts
2026-10-27 16:19 ` Greg Kroah-Hartman [this message]
2026-10-28  2:13   ` [PATCH 10/15] iio: light: tsl2591: don't divide by zero with low gain Jonathan Cameron
2026-10-28  4:16     ` Greg Kroah-Hartman
2026-10-27 16:19 ` [PATCH 11/15] iio: hid-sensors: fix a division by zero Greg Kroah-Hartman
2026-11-01  2:17   ` Jonathan Cameron
2026-11-02 17:33     ` srinivas pandruvada
2026-11-02 22:11       ` Jonathan Cameron
2026-10-27 16:19 ` [PATCH 12/15] iio: imu: inv_mpu6050: don't disable the IRQ under lock Greg Kroah-Hartman
2026-11-01  2:14   ` Jonathan Cameron
2026-10-27 16:19 ` [PATCH 13/15] iio: proximity: sx9500: hand on probe deferral of GPIOs Greg Kroah-Hartman
2026-10-28  2:09   ` Jonathan Cameron
2026-10-27 16:19 ` [PATCH 14/15] iio: scmi: use 64-bit divisions for rates and intervals Greg Kroah-Hartman
2026-10-28  1:46   ` Jonathan Cameron
2026-10-27 16:19 ` [PATCH 15/15] iio: sx9310: use the data of the I2C table Greg Kroah-Hartman
2026-10-27 16:25   ` Biju Das
2026-10-27 16:38     ` Andy Shevchenko
2026-11-01  2:11   ` Jonathan Cameron

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20261027-llm-char-misc-iio-v1-10-0d818334f6c7@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=andy@kernel.org \
    --cc=dlechner@baylibre.com \
    --cc=jic23@kernel.org \
    --cc=joe.g.sandom@gmail.com \
    --cc=josef@toxicpanda.com \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lucas.rabaquim@usp.br \
    --cc=matheus.feitosa@usp.br \
    --cc=nuno.sa@analog.com \
    --cc=sozdayvek@gmail.com \
    --cc=stable@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®