Re: [PATCH 1/6] iio: light: isl29125: Report the scale list via read_avail()
From: Jonathan Cameron
Date: Mon Nov 02 2026 - 17:26:45 EST
On Mon, 2 Nov 2026 16:46:55 +0900
Arka Mondal <arka@xxxxxxxxxxxxxx> wrote:
> The intensity channels set IIO_CHAN_INFO_SCALE in
> info_mask_shared_by_type, so userspace reads the scale from
> in_intensity_scale. The values that attribute accepts are listed by a
> custom attribute named scale_available. That name carries no channel
> prefix, so it is registered at the device level and is never paired
> with the channel. The core would have called it
> in_intensity_scale_available, which is also the name
> Documentation/ABI/testing/sysfs-bus-iio gives, so userspace does not
> find the list where the ABI says it is.
Hi Arka
Not quite true. The core would have done as you said if it was set in the
iio_info_mask_shared_by_type.
Now if it were in iio_info_mask_shared_by_all it would be called
scale_available and hence match the existing ABI.
The device presents 4 channels and arguably this one only applies
to 3 of them as it doesn't apply to the timestamp.
For that reason we generally only use the share_by_all mask for
things like sampling_frequency.
However, whilst less than ideal the change you are proposing here
is a userspace ABI change and it's a bit arguable whether the current
ABI is buggy or not. So in general I'd leave this one alone,
or as a simple cleanup rather than a fix, move it to the read_avail
callback and the mask that does generate the same ABI.
Other than that patch looks good.
Thanks,
Jonathan
>
> Report the two values through read_avail() and drop the custom
> attribute group. The values and the text they print do not change.
>
> Fixes: 208335138001 ("iio: light: isl29125: Add scale_available information")
> Signed-off-by: Arka Mondal <arka@xxxxxxxxxxxxxx>
> static int isl29125_buffer_postenable(struct iio_dev *indio_dev)