[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210704173754.64919405@jic23-huawei>
Date: Sun, 4 Jul 2021 17:37:54 +0100
From: Jonathan Cameron <jic23@...nel.org>
To: Liam Beguin <liambeguin@...il.com>
Cc: peda@...ntia.se, lars@...afoo.de, pmeerw@...erw.net,
linux-kernel@...r.kernel.org, linux-iio@...r.kernel.org,
devicetree@...r.kernel.org, robh+dt@...nel.org
Subject: Re: [PATCH v3 05/10] iio: afe: rescale: add INT_PLUS_{MICRO,NANO}
support
On Wed, 30 Jun 2021 21:00:29 -0400
Liam Beguin <liambeguin@...il.com> wrote:
> From: Liam Beguin <lvb@...hos.com>
>
> Add IIO_VAL_INT_PLUS_{NANO,MICRO} scaling support.
> Scale the integer part and the decimal parts individually and keep the
> original scaling type.
>
> Signed-off-by: Liam Beguin <lvb@...hos.com>
> ---
> drivers/iio/afe/iio-rescale.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/drivers/iio/afe/iio-rescale.c b/drivers/iio/afe/iio-rescale.c
> index 98bcb5d418d6..8f79c582519c 100644
> --- a/drivers/iio/afe/iio-rescale.c
> +++ b/drivers/iio/afe/iio-rescale.c
> @@ -87,7 +87,16 @@ static int rescale_read_raw(struct iio_dev *indio_dev,
> do_div(tmp, 1000000000LL);
> *val = tmp;
> return ret;
> + case IIO_VAL_INT_PLUS_NANO:
> + fallthrough;
As earlier, I'm fairly sure you don't need this (but I could be wrong,
so if I am wrong point me at a reference).
> + case IIO_VAL_INT_PLUS_MICRO:
> + tmp = (s64)*val * rescale->numerator;
> + *val = div_s64(tmp, rescale->denominator);
> + tmp = (s64)*val2 * rescale->numerator;
> + *val2 = div_s64(tmp, rescale->denominator);
> + return ret;
> default:
> + dev_err(&indio_dev->dev, "unsupported type %d\n", ret);
> return -EOPNOTSUPP;
> }
> default:
Powered by blists - more mailing lists