Re: [PATCH v2 5/9] iio: inkern: Add a helper to query an available minimum raw value

From: Jonathan Cameron
Date: Mon Jun 05 2023 - 13:06:05 EST


On Mon, 5 Jun 2023 12:45:24 +0300
Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote:

> On Mon, Jun 5, 2023 at 10:46 AM Herve Codina <herve.codina@xxxxxxxxxxx> wrote:
> > On Sat, 3 Jun 2023 17:04:37 +0300
> > andy.shevchenko@xxxxxxxxx wrote:
> > > Tue, May 23, 2023 at 05:12:19PM +0200, Herve Codina kirjoitti:
>
> ...
>
> > > > + case IIO_VAL_INT:
> > > > + *val = vals[--length];
> > >
> > > > + while (length) {
> > >
> > > while (length--) {
> > >
> > > will do the job and at the same time...
> > >
> > > > + if (vals[--length] < *val)
> > > > + *val = vals[length];
> > >
> > > ...this construction becomes less confusing (easier to parse).
> >
> > Indeed, I will change in the next iteration.
>
> And looking into above line, this whole construction I would prefer to
> have a macro in minmax.h like
>
> #define min_array(array, len) \
> {( \
> typeof(len) __len = (len); \
> typeof(*(array)) __element = (array)[--__len]; \
> while (__len--) \
> __element = min(__element, (array)[__len]); \
> __element; \
> )}
>
> (it might need more work, but you got the idea)
>
> > > > + }
> > > > + break;
>
> ...
>
> > > > + default:
> > > > + /* FIXME: learn about min for other iio values */
> > >
> > > I believe in a final version this comment won't be here.
> >
> > We have the same FIXME comment in the iio_channel_read_max() function I
> > copied to create this iio_channel_read_min() and, to be honest, I
> > don't really know how to handle these other cases.
> >
> > In this series, I would prefer to keep this FIXME.
>
> I see, Jonathan needs to be involved here then.

It's really more of a TODO when someone needs it than a FIXME.
I'm not particularly keen to see a bunch of code supporting cases
that no one uses, but it's useful to call out where the code would
go if other cases were to be supported.

Perhaps soften it to a note that doesn't have the work FIXME in it.

Jonathan


>
> > > > + return -EINVAL;
>