From: "Nuno Sá" <noname.nuno@gmail.com>
To: rodrigo.alencar@analog.com
Cc: linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org,
devicetree@vger.kernel.org, linux-doc@vger.kernel.org,
Jonathan Cameron <jic23@kernel.org>,
David Lechner <dlechner@baylibre.com>,
Andy Shevchenko <andy@kernel.org>,
Lars-Peter Clausen <lars@metafoo.de>,
Michael Hennerich <Michael.Hennerich@analog.com>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Jonathan Corbet <corbet@lwn.net>,
Andrew Morton <akpm@linux-foundation.org>,
Petr Mladek <pmladek@suse.com>,
Steven Rostedt <rostedt@goodmis.org>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Rasmus Villemoes <linux@rasmusvillemoes.dk>,
Sergey Senozhatsky <senozhatsky@chromium.org>,
Shuah Khan <skhan@linuxfoundation.org>
Subject: Re: [PATCH v15 06/12] iio: core: add decimal value formatting into 64-bit value
Date: Mon, 1 Jun 2026 10:43:11 +0100 [thread overview]
Message-ID: <ah1SUD_QpRLD2WGV@nsa> (raw)
In-Reply-To: <20260531-adf41513-iio-driver-v15-6-da09adf1c0dd@analog.com>
On Sun, May 31, 2026 at 09:30:49AM +0100, Rodrigo Alencar via B4 Relay wrote:
> From: Rodrigo Alencar <rodrigo.alencar@analog.com>
>
> Create new format types for iio values (IIO_VAL_DECIMAL64_*), which
> defines the representation of fixed decimal point values into a single
> 64-bit number. This new format increases the range of represented values,
> allowing for integer parts greater than 2^32, as bits are not "wasted"
> in the fractional part, which can be seen in IIO_VAL_INT_PLUS_MICRO and
> IIO_VAL_INT_PLUS_NANO. Helpers are created to compose and decompose 64-bit
> decimals into integer values used in IIO formatting interfaces, which
> creates consistency and avoid error-prone manual assignments when using
> wordpart macros. When doing the parsing, kstrtodec64() is used with the
> scale defined by the specific decimal format type.
>
> Signed-off-by: Rodrigo Alencar <rodrigo.alencar@analog.com>
> ---
> drivers/iio/industrialio-core.c | 47 +++++++++++++++++++++++++++++++++--------
> include/linux/iio/types.h | 30 ++++++++++++++++++++++++++
> 2 files changed, 68 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
> index bd6f4f9f4533..a88088cac641 100644
> --- a/drivers/iio/industrialio-core.c
> +++ b/drivers/iio/industrialio-core.c
> @@ -19,6 +19,7 @@
> #include <linux/idr.h>
> #include <linux/kdev_t.h>
> #include <linux/kernel.h>
> +#include <linux/math64.h>
> #include <linux/module.h>
> #include <linux/mutex.h>
> #include <linux/poll.h>
> @@ -26,7 +27,6 @@
> #include <linux/sched.h>
> #include <linux/slab.h>
> #include <linux/wait.h>
> -#include <linux/wordpart.h>
>
> #include <linux/iio/buffer.h>
> #include <linux/iio/buffer_impl.h>
> @@ -655,6 +655,7 @@ static ssize_t __iio_format_value(char *buf, size_t offset, unsigned int type,
> int size, const int *vals)
> {
> int tmp0, tmp1;
> + int l = 0;
> s64 tmp2;
> bool scale_db = false;
>
> @@ -698,7 +699,6 @@ static ssize_t __iio_format_value(char *buf, size_t offset, unsigned int type,
> case IIO_VAL_INT_MULTIPLE:
> {
> int i;
> - int l = 0;
>
> for (i = 0; i < size; ++i)
> l += sysfs_emit_at(buf, offset + l, "%d ", vals[i]);
> @@ -707,8 +707,25 @@ static ssize_t __iio_format_value(char *buf, size_t offset, unsigned int type,
> case IIO_VAL_CHAR:
> return sysfs_emit_at(buf, offset, "%c", (char)vals[0]);
> case IIO_VAL_INT_64:
> - tmp2 = (s64)((((u64)vals[1]) << 32) | (u32)vals[0]);
> + tmp2 = iio_val_s64_from_s32s(vals);
I might be missing something but can't we just call
iio_val_s64_compose()? Likely even inline in sysfs_emit_at()?
It would match your call to iio_val_s64_decompose() below.
And the above makes me wonder if the compose()/decompose() are not the
only helpers we need? At least in terms of parameters? I mean, just
assuming we only have two integers instead of allowing s32* and opening
the door for misbehave :)?
Don't feel too strong about the above anyways!
- Nuno Sá
next prev parent reply other threads:[~2026-06-01 9:42 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-31 8:30 [PATCH v15 00/12] ADF41513/ADF41510 PLL frequency synthesizers Rodrigo Alencar via B4 Relay
2026-05-31 8:30 ` Rodrigo Alencar
2026-05-31 8:30 ` [PATCH v15 01/12] dt-bindings: iio: frequency: add adf41513 Rodrigo Alencar via B4 Relay
2026-05-31 8:30 ` Rodrigo Alencar
2026-05-31 8:30 ` [PATCH v15 02/12] lib: kstrtox: add local _parse_integer_limit_init() helper Rodrigo Alencar via B4 Relay
2026-05-31 8:30 ` Rodrigo Alencar
2026-06-02 19:43 ` Andy Shevchenko
2026-06-03 10:27 ` Rodrigo Alencar
2026-06-03 10:40 ` Andy Shevchenko
2026-06-03 10:45 ` Rodrigo Alencar
2026-05-31 8:30 ` [PATCH v15 03/12] lib: kstrtox: add kstrtoudec64() and kstrtodec64() Rodrigo Alencar via B4 Relay
2026-05-31 8:30 ` Rodrigo Alencar
2026-06-02 21:00 ` Andy Shevchenko
2026-06-03 8:13 ` Rodrigo Alencar
2026-06-03 8:30 ` Andy Shevchenko
2026-05-31 8:30 ` [PATCH v15 04/12] lib: test-kstrtox: tests for kstrtodec64() and kstrtoudec64() Rodrigo Alencar via B4 Relay
2026-05-31 8:30 ` Rodrigo Alencar
2026-05-31 8:30 ` [PATCH v15 05/12] lib: math: div64: add div64_s64_rem() Rodrigo Alencar via B4 Relay
2026-05-31 8:30 ` Rodrigo Alencar
2026-05-31 8:30 ` [PATCH v15 06/12] iio: core: add decimal value formatting into 64-bit value Rodrigo Alencar via B4 Relay
2026-05-31 8:30 ` Rodrigo Alencar
2026-06-01 9:43 ` Nuno Sá [this message]
2026-06-01 15:12 ` Rodrigo Alencar
2026-06-02 16:56 ` Nuno Sá
2026-06-02 18:01 ` Rodrigo Alencar
2026-05-31 8:30 ` [PATCH v15 07/12] iio: test: iio-test-format: add test case for decimal format Rodrigo Alencar via B4 Relay
2026-05-31 8:30 ` Rodrigo Alencar
2026-05-31 8:30 ` [PATCH v15 08/12] iio: frequency: adf41513: driver implementation Rodrigo Alencar via B4 Relay
2026-05-31 8:30 ` Rodrigo Alencar
2026-05-31 8:30 ` [PATCH v15 09/12] iio: frequency: adf41513: handle LE synchronization feature Rodrigo Alencar via B4 Relay
2026-05-31 8:30 ` Rodrigo Alencar
2026-05-31 8:30 ` [PATCH v15 10/12] iio: frequency: adf41513: features on frequency change Rodrigo Alencar via B4 Relay
2026-05-31 8:30 ` Rodrigo Alencar
2026-05-31 8:30 ` [PATCH v15 11/12] docs: iio: add documentation for adf41513 driver Rodrigo Alencar via B4 Relay
2026-05-31 8:30 ` Rodrigo Alencar
2026-06-02 2:58 ` Randy Dunlap
2026-05-31 8:30 ` [PATCH v15 12/12] Documentation: ABI: testing: add common ABI file for iio/frequency Rodrigo Alencar via B4 Relay
2026-05-31 8:30 ` Rodrigo Alencar
2026-06-02 2:58 ` Randy Dunlap
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=ah1SUD_QpRLD2WGV@nsa \
--to=noname.nuno@gmail.com \
--cc=Michael.Hennerich@analog.com \
--cc=akpm@linux-foundation.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=andy@kernel.org \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=jic23@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-doc@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@rasmusvillemoes.dk \
--cc=pmladek@suse.com \
--cc=robh@kernel.org \
--cc=rodrigo.alencar@analog.com \
--cc=rostedt@goodmis.org \
--cc=senozhatsky@chromium.org \
--cc=skhan@linuxfoundation.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.