From nobody Sun May 24 18:41:33 2026 Received: from mail-yw1-f171.google.com (mail-yw1-f171.google.com [209.85.128.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 22FD015A864 for ; Sun, 24 May 2026 02:04:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779588292; cv=none; b=nckk4MAi5E8yJ4qrxDOWrIjBEppyW03NIdbrun3mshF+5s0VAdrZxWiBL/GwPY7Gxwmsa/QUnAKdnkKAKsuzB/+BxA7b/q4OVC0RsyCCW1MKYIHt4bDtNa2WPspwP4jFyabQevk1ej8TOBC+O3+TTLE3HLnzjPNMMpkkLuEVbDw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779588292; c=relaxed/simple; bh=iP896goZa4JSvSMaGWKtW9GY1PSXDeqHR1q2E1vIz3o=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=ec0oyGqX1Z6pCyIN84IISVy4qPbKJYu6tK8ZmhtaR0V8PMFUyEeaQ0dQWbrF6LgwGvYOUTX7LZTwpiamhzgYSxQTOQLKbnRDHbUZmV/DskecvWqVudceabgGxNjNoZjTa61T/x7ZDADS54OE22zmEkGBKtMCOhk0VlwtNdy28n4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=GaQyChWD; arc=none smtp.client-ip=209.85.128.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GaQyChWD" Received: by mail-yw1-f171.google.com with SMTP id 00721157ae682-7c23248f3a3so91906367b3.1 for ; Sat, 23 May 2026 19:04:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779588290; x=1780193090; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=1mG58R360m/1P/UQMKqIOxr15zPVVMiOX/bVxawbO54=; b=GaQyChWDId8B4Q6CYLM/fAC5cgIeCrqUPBLs4z0Jdf9oVXsAeb8edPYWP3lBPWXn5G yNPdGE5ydiU/2N8uGpaDID1QX3bSn3am8vWDSLxR9qnqv0EQdeHh2MbIzNoUFk54QtIh okQ2EZAebYlm7AoLszZ6Ip5tMCneTQlHImA0Wkw6R6WvxvFEoautfDz2W4dxzzm2PPtB kJFeDImmKbwm+Gn7LPAGZdsvzwRXVkqPlFwx4Zt8JTpJ70dIExyCdA2rxq5IkKtYJ6ug NyR27vxeBuFZtGgbYKwxjmfJF9U0iduqmc+J73/6AR3VI8t97yHaCcUafcpfD5Ihfapz qAeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779588290; x=1780193090; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=1mG58R360m/1P/UQMKqIOxr15zPVVMiOX/bVxawbO54=; b=IxyycdQNan/PX2dBdrpHHlt2V2zKPa0E5oWM1Ygq19I/PMaPgmik5x2OOvqFdIbVld 926YOi7wDznl9G+n4IgsHpQoVWNCDj4+Kc449YzFA8+sRjdNo+N9dV87HUP49UAk/zQQ El9u93EdmjDJXyzQhnrA4+jW54kwv285g+2TEIHDcmWZJx+s+ZmIC7MKFuLbH5qHiO1G vfOTmkqTLBv5a7B0TUPs7V6tBzFp/+FTxVArTM+0S8aQR5v4oHRoUOQR1KbquN1uoQzU UAIiHYER7HeZZv0EmUJmdFolUVrs9hJywNwaTyeq6EzUkYVAzShcvA52ooR/1zUxFbdu sDmQ== X-Forwarded-Encrypted: i=1; AFNElJ+dxI8gVs7O013pgT6Fp1LNyDI1ecfO9i0XpoJ0wp5vG/m6q+CYfBBouYxmuNPw9UjA82gj4hypZwFKayU=@vger.kernel.org X-Gm-Message-State: AOJu0YwxAYO4Lez9gdQFGLpf/7ErbZ83M2IQq4jSi3e+wA2SOr2cOizf 4SpbH6U5OfwDyVmFHt+/owOb4OMUq8TMzCVkXeduwdU6pne8vJHXjOSQ X-Gm-Gg: Acq92OF6ea+sVRmfzFPKp5tg31kY2tvX9St6qK0lNBlzl6JFtGe/i1xmUo3TdXU9I1F 0GkuiE184NtSsJa/p5Q8K6b+td8fDWTJVzCbe/tyZijrJKqu8DRN6R/k3B+FG1B8ywW2/xUWmbZ ZO3nqmKYxysPNqB9ypDlV1kT6zTJxyUMDgk4vQGszuLLADzfClrfA70MLqgYHEe7bXkaPgpgk+y jAio1bigxepJLQThCcM9ovsdAag3pYSIfvFBOx67vb2L63E9bfwDZggIjggCqNJWMroJs/PUkh+ M8TBEpoVgGg78NL5yXEj9ZBToxtaumkRThpMuTDnIe1OTfgzMMjPkhHj8As7/5Pow1e61T+Nxmk +rdkEDJAXQ9wKcaeDaMcXtExAir9VgMRAtMlehxtSU6r8N9vIizCEqniFKzA6gjBnBqPp0cALzJ /fp4haGbui2Oy9thBIKivNAk1pY8Q= X-Received: by 2002:a05:690c:45c6:b0:7bd:a4dc:c26d with SMTP id 00721157ae682-7d338393a2fmr115700167b3.41.1779588290158; Sat, 23 May 2026 19:04:50 -0700 (PDT) Received: from i-use-arch-btw ([209.37.158.229]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7d38c335164sm28159187b3.33.2026.05.23.19.04.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 May 2026 19:04:49 -0700 (PDT) From: Maxwell Doose To: jic23@kernel.org Cc: Maxwell Doose , David Lechner , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , linux-iio@vger.kernel.org (open list:IIO SUBSYSTEM AND DRIVERS), linux-kernel@vger.kernel.org (open list) Subject: [PATCH v2] iio: chemical: scd30: Cleanup initializations in scd30_float_to_fp() Date: Sat, 23 May 2026 21:03:08 -0500 Message-ID: <20260524020309.18618-1-m32285159@gmail.com> X-Mailer: git-send-email 2.54.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Include linux/bitfield.h for FIELD_GET(). Create new macros for bit manipulation in combination with manual bit manipulation being replaced with FIELD_GET(). 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 --- v2: - Added new floating point macro constants per Jonathan's suggestion. - Included linux/bitfield.h to use FIELD_GET() since Jonathan also recommended its use. drivers/iio/chemical/scd30_core.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/drivers/iio/chemical/scd30_core.c b/drivers/iio/chemical/scd30= _core.c index 8dbba9a7c426..db5cc295aeab 100644 --- a/drivers/iio/chemical/scd30_core.c +++ b/drivers/iio/chemical/scd30_core.c @@ -4,6 +4,8 @@ * * Copyright (c) 2020 Tomasz Duszynski */ + +#include #include #include #include @@ -43,6 +45,11 @@ #define SCD30_TEMP_OFFSET_MAX 655360 #define SCD30_EXTRA_TIMEOUT_PER_S 250 =20 +/* Floating point arithmetic macros */ +#define SCD30_FLOAT_MANTISSA_MSK GENMASK(22, 0) +#define SCD30_FLOAT_EXP_MSK GENMASK(30, 23) +#define SCD30_FLOAT_SIGN_MSK BIT(31) + enum { SCD30_CONC, SCD30_TEMP, @@ -89,10 +96,15 @@ static int scd30_reset(struct scd30_state *state) /* simplified float to fixed point conversion with a scaling factor of 0.0= 1 */ static int scd30_float_to_fp(int float32) { - int fraction, shift, - mantissa =3D float32 & GENMASK(22, 0), - sign =3D (float32 & BIT(31)) ? -1 : 1, - exp =3D (float32 & ~BIT(31)) >> 23; + int fraction, shift, sign; + int mantissa =3D FIELD_GET(SCD30_FLOAT_MANTISSA_MSK, float32); + int exp =3D FIELD_GET(SCD30_FLOAT_EXP_MSK, float32); + + /* Determine sign of received float based on IEEE 754 standard */ + if (float32 & SCD30_FLOAT_SIGN_MSK) + sign =3D -1; + else + sign =3D 1; =20 /* special case 0 */ if (!exp && !mantissa) --=20 2.54.0