Messages in this thread Patch in this message | | | From | Liam Beguin <> | Subject | [PATCH v3 05/10] iio: afe: rescale: add INT_PLUS_{MICRO,NANO} support | Date | Wed, 30 Jun 2021 21:00:29 -0400 |
| |
From: Liam Beguin <lvb@xiphos.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@xiphos.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; + 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: -- 2.30.1.489.g328c10930387
| |