[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240928172059.3a7fa45d@jic23-huawei>
Date: Sat, 28 Sep 2024 17:20:59 +0100
From: Jonathan Cameron <jic23@...nel.org>
To: Javier Carrasco <javier.carrasco.cruz@...il.com>
Cc: Lars-Peter Clausen <lars@...afoo.de>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>, Conor Dooley
<conor+dt@...nel.org>, Rishi Gupta <gupt21@...il.com>,
linux-iio@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, Jonathan Cameron
<Jonathan.Cameron@...wei.com>
Subject: Re: [PATCH v2 07/10] iio: light: veml6030: drop processed info for
white channel
On Mon, 23 Sep 2024 00:17:55 +0200
Javier Carrasco <javier.carrasco.cruz@...il.com> wrote:
> The resolution of the WHITE channel is not provided by the manufacturer,
> neither in the datasheet nor in the application note (even their
> proprietary application only processes the ALS channel, giving raw
> values for WHITE).
>
> The current implementation assumes that both resolutions are identical,
> which is extremely unlikely, especially for photodiodes with different
> spectral responses.
>
> Drop the processed information as it is meaningless.
>
> Signed-off-by: Javier Carrasco <javier.carrasco.cruz@...il.com>
Just to note, this one is fine as it is fixing an ABI bug
so is a valid reason to change the ABI.
In theory though we should pull it out as a fix to add to stable
as well, but it's low risk that anyone is using the 'false'
channel so I don't think we care about backports for this one.
Thanks,
Jonathan
> ---
> drivers/iio/light/veml6030.c | 8 +-------
> 1 file changed, 1 insertion(+), 7 deletions(-)
>
> diff --git a/drivers/iio/light/veml6030.c b/drivers/iio/light/veml6030.c
> index a3190fab3add..861bdf2edd4d 100644
> --- a/drivers/iio/light/veml6030.c
> +++ b/drivers/iio/light/veml6030.c
> @@ -209,8 +209,7 @@ static const struct iio_chan_spec veml6030_channels[] = {
> .channel = CH_WHITE,
> .modified = 1,
> .channel2 = IIO_MOD_LIGHT_BOTH,
> - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) |
> - BIT(IIO_CHAN_INFO_PROCESSED),
> + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
> .info_mask_shared_by_all = BIT(IIO_CHAN_INFO_INT_TIME) |
> BIT(IIO_CHAN_INFO_SCALE),
> .info_mask_shared_by_all_available = BIT(IIO_CHAN_INFO_INT_TIME) |
> @@ -549,11 +548,6 @@ static int veml6030_read_raw(struct iio_dev *indio_dev,
> dev_err(dev, "can't read white data %d\n", ret);
> return ret;
> }
> - if (mask == IIO_CHAN_INFO_PROCESSED) {
> - *val = (reg * data->cur_resolution) / 10000;
> - *val2 = (reg * data->cur_resolution) % 10000;
> - return IIO_VAL_INT_PLUS_MICRO;
> - }
> *val = reg;
> return IIO_VAL_INT;
> default:
>
Powered by blists - more mailing lists