Commit 52c1e818 authored by Sean Anderson's avatar Sean Anderson Committed by Guenter Roeck

hwmon: iio: Use iio_read_channel_processed_scale for IIO_POWER

Instead of rescaling power channels after the fact, use the dedicated
scaling API. This should reduce any inaccuracies resulting from the
scaling.
Signed-off-by: default avatarSean Anderson <sean.anderson@linux.dev>
Link: https://lore.kernel.org/r/20240620212005.821805-1-sean.anderson@linux.devSigned-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent 1226a1b2
......@@ -49,16 +49,17 @@ static ssize_t iio_hwmon_read_val(struct device *dev,
struct iio_channel *chan = &state->channels[sattr->index];
enum iio_chan_type type;
ret = iio_read_channel_processed(chan, &result);
if (ret < 0)
return ret;
ret = iio_get_channel_type(chan, &type);
if (ret < 0)
return ret;
if (type == IIO_POWER)
result *= 1000; /* mili-Watts to micro-Watts conversion */
/* mili-Watts to micro-Watts conversion */
ret = iio_read_channel_processed_scale(chan, &result, 1000);
else
ret = iio_read_channel_processed(chan, &result);
if (ret < 0)
return ret;
return sprintf(buf, "%d\n", result);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment