Re: [PATCH v3 1/8] iio:core: add a callback to allow drivers to provide _available attributes

From: Daniel Baluta
Date: Mon Nov 07 2016 - 06:37:52 EST


On Mon, Oct 24, 2016 at 1:39 AM, Peter Rosin <peda@xxxxxxxxxx> wrote:
> From: Jonathan Cameron <jic23@xxxxxxxxxx>
>
> A large number of attributes can only take a limited range of values.
> Currently in IIO this is handled by directly registering additional
> *_available attributes thus providing this information to userspace.
>
> It is desirable to provide this information via the core for much the same
> reason this was done for the actual channel information attributes in the
> first place. If it isn't there, then it can only really be accessed from
> userspace. Other in kernel IIO consumers have no access to what valid
> parameters are.
>
> Two forms are currently supported:
> * list of values in one particular IIO_VAL_* format.
> e.g. 1.300000 1.500000 1.730000
> * range specification with a step size:
> e.g. [1.000000 0.500000 2.500000]
> equivalent to 1.000000 1.5000000 2.000000 2.500000

Is there any driver using this format? :)

>
> An addition set of masks are used to allow different sharing rules for the
> *_available attributes generated.
>
> This allows for example:
>
> in_accel_x_offset
> in_accel_y_offset
> in_accel_offset_available.
>
> We could have gone with having a specification for each and every
> info_mask element but that would have meant changing the existing userspace
> ABI. This approach does not.
>
> Signed-off-by: Jonathan Cameron <jic23@xxxxxxxxxx>
> [forward ported, added some docs and fixed buffer overflows /peda]
> Signed-off-by: Peter Rosin <peda@xxxxxxxxxx>

The patch looks good to me at a first glance.