From: sashiko-bot@kernel.org
To: "Janani Sunil" <janani.sunil@analog.com>
Cc: devicetree@vger.kernel.org, robh@kernel.org, conor+dt@kernel.org
Subject: Re: [PATCH v6 13/17] iio: adc: ad7768: Add calibration controls
Date: Fri, 04 Sep 2026 14:35:26 +0000 [thread overview]
Message-ID: <20260904143527.661101F00A3D@smtp.kernel.org> (raw)
In-Reply-To: <20260904-ad7768-driver-v6-13-e4378f946bfb@analog.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] The IIO CALIBBIAS attribute incorrectly handles negative offsets, breaking two's complement offset calibration and violating the IIO ABI.
--
commit c96b4e9aa2c8a4f4230f53b26b0c87ecec23865f
Author: Janani Sunil <janani.sunil@analog.com>
iio: adc: ad7768: Add calibration controls
This commit exposes the per-channel offset and gain calibration registers
through the IIO calibbias and calibscale attributes.
> diff --git a/drivers/iio/adc/ad7768.c b/drivers/iio/adc/ad7768.c
> index f2c762688fb39..802666f7abd45 100644
> --- a/drivers/iio/adc/ad7768.c
> +++ b/drivers/iio/adc/ad7768.c
[ ... ]
> @@ -798,6 +865,7 @@ static int ad7768_read_raw(struct iio_dev *indio_dev,
> int *val, int *val2, long info)
> {
> struct ad7768_state *st = iio_priv(indio_dev);
[ ... ]
> + case IIO_CHAN_INFO_CALIBBIAS:
> + case IIO_CHAN_INFO_CALIBSCALE: {
> + bool is_gain = info == IIO_CHAN_INFO_CALIBSCALE;
> + unsigned int base_reg;
> + unsigned int calib;
> +
> + base_reg = ad7768_get_calib_reg_base(st, chan, is_gain);
> + ret = ad7768_read_calib_value(st, base_reg, &calib);
> + if (ret)
> + return ret;
> +
> + *val = calib;
[Severity: High]
Does this assignment correctly handle negative two's complement offsets?
Since calib is an unsigned integer populated from a 24-bit register, reading
a negative offset directly assigns it without sign extension. Will this cause
userspace to see massive positive integers (e.g., 0xFFFFFF) instead of the
actual negative offset, violating the IIO ABI?
> + return IIO_VAL_INT;
> + }
> default:
> return -EINVAL;
> }
[ ... ]
> @@ -816,24 +899,45 @@ static int ad7768_read_raw(struct iio_dev *indio_dev,
> static int ad7768_write_raw(struct iio_dev *indio_dev,
> struct iio_chan_spec const *chan,
> int val, int val2, long info)
> {
[ ... ]
> - if (info == IIO_CHAN_INFO_SAMP_FREQ)
> + switch (info) {
> + case IIO_CHAN_INFO_SAMP_FREQ:
> return ad7768_set_sampling_freq(indio_dev, val, chan->channel);
> + case IIO_CHAN_INFO_CALIBBIAS:
> + if (val < 0 || val > AD7768_CALIB_REG_MSK)
> + return -EINVAL;
[Severity: High]
Is it expected to explicitly block negative values for the calibration bias?
By returning -EINVAL when val < 0, this rejects valid negative integer
offsets that users or auto-calibration scripts might attempt to write. Should
negative values be converted to their 24-bit two's complement representation
instead of being rejected?
>
> - return -EINVAL;
> + base_reg = ad7768_get_calib_reg_base(st, chan, false);
> + return ad7768_write_calib_value(st, base_reg, val);
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260904-ad7768-driver-v6-0-e4378f946bfb@analog.com?part=13
next prev parent reply other threads:[~2026-09-04 14:35 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-04 14:14 [PATCH v6 00/17] iio: adc: Add AD7768/AD7768-4 ADC driver support Janani Sunil
2026-09-04 14:14 ` [PATCH v6 01/17] iio: adc: adi-axi-adc: Initialize state mutex Janani Sunil
2026-09-04 14:14 ` [PATCH v6 02/17] dt-bindings: iio: adc: Add AD7768 Janani Sunil
2026-09-04 14:21 ` sashiko-bot
2026-09-04 17:08 ` Conor Dooley
2026-09-04 14:14 ` [PATCH v6 03/17] iio: backend: Add support for CRC Janani Sunil
2026-09-06 3:50 ` Jonathan Cameron
2026-09-04 14:14 ` [PATCH v6 04/17] iio: adc: adi-axi-adc: " Janani Sunil
2026-09-04 14:24 ` sashiko-bot
2026-09-04 14:14 ` [PATCH v6 05/17] iio: adc: Add AD7768 and AD7768-4 core support Janani Sunil
2026-09-04 14:31 ` sashiko-bot
2026-09-06 2:24 ` Jonathan Cameron
2026-09-06 3:05 ` Jonathan Cameron
2026-09-06 3:50 ` Jonathan Cameron
2026-09-07 11:25 ` Janani Sunil
2026-09-10 3:43 ` Jonathan Cameron
2026-09-06 8:34 ` Andy Shevchenko
2026-09-07 11:17 ` Janani Sunil
2026-09-04 14:14 ` [PATCH v6 06/17] iio: adc: ad7768: Validate master clock rate Janani Sunil
2026-09-04 14:14 ` [PATCH v6 07/17] iio: adc: ad7768: Add power mode helper Janani Sunil
2026-09-04 14:25 ` sashiko-bot
2026-09-06 3:50 ` Jonathan Cameron
2026-09-04 14:15 ` [PATCH v6 08/17] iio: adc: ad7768: Derive output data rates Janani Sunil
2026-09-04 14:15 ` [PATCH v6 09/17] iio: adc: ad7768: Configure channel sampling profiles Janani Sunil
2026-09-04 14:45 ` sashiko-bot
2026-09-06 3:50 ` Jonathan Cameron
2026-09-04 14:15 ` [PATCH v6 10/17] iio: adc: ad7768: Add sampling frequency controls Janani Sunil
2026-09-04 14:15 ` [PATCH v6 11/17] iio: adc: ad7768: Add per-channel filter controls Janani Sunil
2026-09-04 14:15 ` [PATCH v6 12/17] iio: adc: ad7768: Wait for digital filters to settle Janani Sunil
2026-09-04 14:15 ` [PATCH v6 13/17] iio: adc: ad7768: Add calibration controls Janani Sunil
2026-09-04 14:35 ` sashiko-bot [this message]
2026-09-06 3:50 ` Jonathan Cameron
2026-09-04 14:15 ` [PATCH v6 14/17] iio: adc: ad7768: Add per-channel conversion delay Janani Sunil
2026-09-04 14:33 ` sashiko-bot
2026-09-06 3:50 ` Jonathan Cameron
2026-09-04 14:15 ` [PATCH v6 15/17] iio: adc: ad7768: Add VCM regulator support Janani Sunil
2026-09-04 14:15 ` [PATCH v6 16/17] iio: adc: ad7768: Register GPIO auxiliary device Janani Sunil
2026-09-04 14:15 ` [PATCH v6 17/17] Documentation: iio: Add AD7768 Documentation Janani Sunil
2026-09-06 3:50 ` 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=20260904143527.661101F00A3D@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=janani.sunil@analog.com \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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.