[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20241031214226.47043d3f@jic23-huawei>
Date: Thu, 31 Oct 2024 21:42:26 +0000
From: Jonathan Cameron <jic23@...nel.org>
To: David Lechner <dlechner@...libre.com>
Cc: Marcelo Schmitt <marcelo.schmitt@...log.com>, Michael Hennerich
<Michael.Hennerich@...log.com>, Nuno Sa <nuno.sa@...log.com>,
linux-iio@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] iio: adc: ad4000: fix reading unsigned data
On Wed, 30 Oct 2024 16:09:41 -0500
David Lechner <dlechner@...libre.com> wrote:
> Fix reading unsigned data from the AD4000 ADC via the _raw sysfs
> attribute by ensuring that *val is set before returning from
> ad4000_single_conversion(). This was not being set in any code path
> and was causing the attribute to return a random value.
>
> Fixes: 938fd562b974 ("iio: adc: Add support for AD4000")
> Signed-off-by: David Lechner <dlechner@...libre.com>
Applied.
> ---
> FYI, there is also another unrelated bug I noticed but didn't fix.
>
> We are calling iio_push_to_buffers_with_timestamp() but there isn't
> actually a IIO_CHAN_SOFT_TIMESTAMP() channel. I assume the intention
> was to have the timestamp channel?
Technically harmless as it can never be turned on, but indeed seems
doubtful - maybe something to treat as a feature rather than a fix though
given it was never there.
> ---
> drivers/iio/adc/ad4000.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/iio/adc/ad4000.c b/drivers/iio/adc/ad4000.c
> index 6ea491245084..fc9c9807f89d 100644
> --- a/drivers/iio/adc/ad4000.c
> +++ b/drivers/iio/adc/ad4000.c
> @@ -344,6 +344,8 @@ static int ad4000_single_conversion(struct iio_dev *indio_dev,
>
> if (chan->scan_type.sign == 's')
> *val = sign_extend32(sample, chan->scan_type.realbits - 1);
> + else
> + *val = sample;
>
> return IIO_VAL_INT;
> }
>
> ---
> base-commit: fa4076314480bcb2bb32051027735b1cde07eea2
> change-id: 20241030-iio-adc-ad4000-fix-reading-unsigned-data-88a1de88cf57
>
> Best regards,
Powered by blists - more mailing lists