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)