Linux IIO development
 help / color / mirror / Atom feed
From: Maxwell Doose <m32285159@gmail.com>
To: jic23@kernel.org
Cc: "Tomasz Duszynski" <tomasz.duszynski@octakon.com>,
	"David Lechner" <dlechner@baylibre.com>,
	"Nuno Sá" <nuno.sa@analog.com>,
	"Andy Shevchenko" <andy@kernel.org>,
	linux-iio@vger.kernel.org (open list:IIO SUBSYSTEM AND DRIVERS),
	linux-kernel@vger.kernel.org (open list)
Subject: [PATCH] iio: chemical: scd30: Cleanup initializations in scd30_float_to_fp()
Date: Fri,  8 May 2026 17:55:00 -0500	[thread overview]
Message-ID: <20260508225501.86448-1-m32285159@gmail.com> (raw)

The current variable declaration and initializations are barely readable
and use comma separations across multiple lines. Refactor the
initializations so that mantissa and exp have separate declarations and
sign gets initialized later.

Signed-off-by: Maxwell Doose <m32285159@gmail.com>
---
 ps:
 Hi Jonathan, I noticed a potential divide-by-zero bug on line 241 in
 scd30_read_raw(), where the value of tmp is dictated by hardware.
 If the scd30_command_read() call on line 236 assigns 0 to tmp, then
 when we run:
 *val2 = 1000000000 / tmp;
 we'll get a divide-by-zero. Will send a patch for this later.

 best regards,
 max
 
 drivers/iio/chemical/scd30_core.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/iio/chemical/scd30_core.c b/drivers/iio/chemical/scd30_core.c
index a665fcb78806..be8c055be184 100644
--- a/drivers/iio/chemical/scd30_core.c
+++ b/drivers/iio/chemical/scd30_core.c
@@ -89,10 +89,15 @@ static int scd30_reset(struct scd30_state *state)
 /* simplified float to fixed point conversion with a scaling factor of 0.01 */
 static int scd30_float_to_fp(int float32)
 {
-	int fraction, shift,
-	    mantissa = float32 & GENMASK(22, 0),
-	    sign = (float32 & BIT(31)) ? -1 : 1,
-	    exp = (float32 & ~BIT(31)) >> 23;
+	int fraction, shift, sign;
+	int mantissa = float32 & GENMASK(22, 0);
+	int exp = (float32 & ~BIT(31)) >> 23;
+
+	/* Determine sign of received float based on IEEE 754 standard */
+	if (float32 & BIT(31))
+		sign = -1;
+	else
+		sign = 1;

 	/* special case 0 */
 	if (!exp && !mantissa)
--
2.54.0

             reply	other threads:[~2026-05-08 22:55 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-08 22:55 Maxwell Doose [this message]
2026-05-09  2:43 ` [PATCH] iio: chemical: scd30: Cleanup initializations in scd30_float_to_fp() Sanjay Chitroda
2026-05-09 12:27   ` Maxwell Doose
2026-05-10  9:21     ` Andy Shevchenko
2026-05-10  9:15 ` Andy Shevchenko

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=20260508225501.86448-1-m32285159@gmail.com \
    --to=m32285159@gmail.com \
    --cc=andy@kernel.org \
    --cc=dlechner@baylibre.com \
    --cc=jic23@kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nuno.sa@analog.com \
    --cc=tomasz.duszynski@octakon.com \
    /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