All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sam Winchenbach <sam.winchenbach@framepointer.org>
To: linux-kernel@vger.kernel.org
Cc: lars@metafoo.de, Michael.Hennerich@analog.com,
	antoniu.miclaus@analog.com, jic23@kernel.org, robh@kernel.org,
	krzk+dt@kernel.org, conor+dt@kernel.org,
	linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
	sam.winchenbach@framepointer.org, bpellegrino@arka.org
Subject: [PATCH 5/6] driver core: Add support for writing 64 bit attrs
Date: Thu,  6 Mar 2025 14:05:27 -0500	[thread overview]
Message-ID: <20250306190528.152133-1-sam.winchenbach@framepointer.org> (raw)
In-Reply-To: <20250306183314.150253-1-sam.winchenbach@framepointer.org>

Prior to this patch it was only possible to read 64 bit integers.

Signed-off-by: Sam Winchenbach <sam.winchenbach@framepointer.org>
---
 drivers/iio/industrialio-core.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
index a2117ad1337d..b2436b8f3eea 100644
--- a/drivers/iio/industrialio-core.c
+++ b/drivers/iio/industrialio-core.c
@@ -965,8 +965,10 @@ static ssize_t iio_write_channel_info(struct device *dev,
 	struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
 	int ret, fract_mult = 100000;
 	int integer, fract = 0;
+	long long integer64;
 	bool is_char = false;
 	bool scale_db = false;
+	bool is_64bit = false;
 
 	/* Assumes decimal - precision based on number of digits */
 	if (!indio_dev->info->write_raw)
@@ -990,6 +992,9 @@ static ssize_t iio_write_channel_info(struct device *dev,
 		case IIO_VAL_CHAR:
 			is_char = true;
 			break;
+		case IIO_VAL_INT_64:
+			is_64bit = true;
+			break;
 		default:
 			return -EINVAL;
 		}
@@ -1000,6 +1005,13 @@ static ssize_t iio_write_channel_info(struct device *dev,
 		if (sscanf(buf, "%c", &ch) != 1)
 			return -EINVAL;
 		integer = ch;
+	} else if (is_64bit) {
+		ret = kstrtoll(buf, 0, &integer64);
+		if (ret)
+			return ret;
+
+		fract = (int)(integer64 >> 32);
+		integer = (int)(integer64 & 0xFFFFFFFF);
 	} else {
 		ret = __iio_str_to_fixpoint(buf, fract_mult, &integer, &fract,
 					    scale_db);
-- 
2.48.1


  parent reply	other threads:[~2025-03-06 19:15 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-06 18:33 [PATCH v5 1/6] dt-bindings: iio: filter: Add lpf/hpf freq margins Sam Winchenbach
2025-03-06 18:33 ` [PATCH v5 2/6] iio: filter: admv8818: fix band 4, state 15 Sam Winchenbach
2025-03-06 18:33 ` [PATCH v5 3/6] iio: filter: admv8818: fix integer overflow Sam Winchenbach
2025-03-06 18:33 ` [PATCH v5 4/6] iio: filter: admv8818: fix range calculation Sam Winchenbach
2025-03-06 19:05 ` Sam Winchenbach [this message]
2025-03-06 19:05   ` [PATCH 6/6] iio: filter: admv8818: Support frequencies >= 2^32 Sam Winchenbach
2025-03-07  8:34 ` [PATCH v5 1/6] dt-bindings: iio: filter: Add lpf/hpf freq margins Krzysztof Kozlowski
2025-03-07 13:47   ` Sam Winchenbach
2025-03-09 19:55     ` Krzysztof Kozlowski

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=20250306190528.152133-1-sam.winchenbach@framepointer.org \
    --to=sam.winchenbach@framepointer.org \
    --cc=Michael.Hennerich@analog.com \
    --cc=antoniu.miclaus@analog.com \
    --cc=bpellegrino@arka.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=jic23@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robh@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 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.