2020-04-01 11:27:53

by Mircea Caprioru

[permalink] [raw]
Subject: [PATCH] iio: core: Fix handling of 'dB'

This patch fixes the call to iio_str_to_fixpoint when using 'dB' sufix.
Before this the scale_db was not used when parsing the string written to
the attribute and it failed with invalid value.

Fixes: b8528224741b ("iio: core: Handle 'dB' suffix in core")
Signed-off-by: Mircea Caprioru <[email protected]>
---
drivers/iio/industrialio-core.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
index 157d95a24faa..7da9cd2a2b58 100644
--- a/drivers/iio/industrialio-core.c
+++ b/drivers/iio/industrialio-core.c
@@ -909,14 +909,11 @@ static ssize_t iio_write_channel_info(struct device *dev,
return -EINVAL;
integer = ch;
} else {
- ret = iio_str_to_fixpoint(buf, fract_mult, &integer, &fract);
+ ret = __iio_str_to_fixpoint(buf, fract_mult, &integer, &fract,
+ scale_db);
if (ret)
return ret;
}
- ret = __iio_str_to_fixpoint(buf, fract_mult, &integer, &fract,
- scale_db);
- if (ret)
- return ret;

ret = indio_dev->info->write_raw(indio_dev, this_attr->c,
integer, fract, this_attr->address);
--
2.17.1


2020-04-04 16:47:07

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH] iio: core: Fix handling of 'dB'

On Wed, 1 Apr 2020 14:22:30 +0300
Mircea Caprioru <[email protected]> wrote:

> This patch fixes the call to iio_str_to_fixpoint when using 'dB' sufix.
> Before this the scale_db was not used when parsing the string written to
> the attribute and it failed with invalid value.
>
> Fixes: b8528224741b ("iio: core: Handle 'dB' suffix in core")
> Signed-off-by: Mircea Caprioru <[email protected]>

Gah, I guess this messed up around the introduction of the character handling.

Applied to the fixes-togreg branch of iio.git.

Thanks,

Jonathan

> ---
> drivers/iio/industrialio-core.c | 7 ++-----
> 1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
> index 157d95a24faa..7da9cd2a2b58 100644
> --- a/drivers/iio/industrialio-core.c
> +++ b/drivers/iio/industrialio-core.c
> @@ -909,14 +909,11 @@ static ssize_t iio_write_channel_info(struct device *dev,
> return -EINVAL;
> integer = ch;
> } else {
> - ret = iio_str_to_fixpoint(buf, fract_mult, &integer, &fract);
> + ret = __iio_str_to_fixpoint(buf, fract_mult, &integer, &fract,
> + scale_db);
> if (ret)
> return ret;
> }
> - ret = __iio_str_to_fixpoint(buf, fract_mult, &integer, &fract,
> - scale_db);
> - if (ret)
> - return ret;
>
> ret = indio_dev->info->write_raw(indio_dev, this_attr->c,
> integer, fract, this_attr->address);