Re: [PATCH v2 4/8] iio: inkern: return valid type on raw to processed conversion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 09 Jun 2021 17:46:58 -0400
"Liam Beguin" <liambeguin@xxxxxxxxx> wrote:

> On Wed Jun 9, 2021 at 4:32 PM EDT, Jonathan Cameron wrote:
> > On Mon, 7 Jun 2021 10:47:14 -0400
> > Liam Beguin <liambeguin@xxxxxxxxx> wrote:
> >  
> > > From: Liam Beguin <lvb@xxxxxxxxxx>
> > > 
> > > iio_convert_raw_to_processed_unlocked() applies the offset and scale of
> > > a channel on it's raw value.
> > > The processed value returned is always an integer. Return IIO_VAL_INT so
> > > that consumers can use this return value directly.
> > > 
> > > Signed-off-by: Liam Beguin <lvb@xxxxxxxxxx>  
> > This looks likely to cause breakage given that return value will go to
> > consumers directly via iio_convert_raw_to_processed()
> >
> > Looks like this will break lmp91000 which checks for error as
> >
> > if (ret)
> >  
> 
> IIO_VAL_INT seems like a better return value here since the consumer
> gets an integer. I can look at existing consumers and patch those too.
> Or would you rather I drop this patch?
If we were looking at actually allowing this to return other types,
then I'd agree with updating callers appropriately.

For now we aren't doing that, so the only question is success or fail.
So I'd drop this one.

Most consumers don't care about IIO types.

Jonathan

> 
> > > ---
> > >  drivers/iio/inkern.c | 4 ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/drivers/iio/inkern.c b/drivers/iio/inkern.c
> > > index 0b5667f22b1d..00d234e87234 100644
> > > --- a/drivers/iio/inkern.c
> > > +++ b/drivers/iio/inkern.c
> > > @@ -618,7 +618,7 @@ static int iio_convert_raw_to_processed_unlocked(struct iio_channel *chan,
> > >  		 * raw value and return.
> > >  		 */
> > >  		*processed = raw * scale;
> > > -		return 0;
> > > +		return IIO_VAL_INT;
> > >  	}
> > >  
> > >  	switch (scale_type) {
> > > @@ -652,7 +652,7 @@ static int iio_convert_raw_to_processed_unlocked(struct iio_channel *chan,
> > >  		return -EINVAL;
> > >  	}
> > >  
> > > -	return 0;
> > > +	return IIO_VAL_INT;
> > >  }
> > >  
> > >  int iio_convert_raw_to_processed(struct iio_channel *chan, int raw,  
> 




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux