iio: inkern: pass through raw values if no scaling
authorLinus Walleij <linus.walleij@linaro.org>
Wed, 11 Jan 2017 10:48:39 +0000 (11:48 +0100)
committerJonathan Cameron <jic23@kernel.org>
Sat, 14 Jan 2017 12:20:18 +0000 (12:20 +0000)
commitadc8ec5ff183d09ae7a9d2dd31125401d302ba63
treee17f98d63f63971e268176057333bf21ea20ef62
parent948b707df8d2493346f7a2979632ab5ae8b8abb6
iio: inkern: pass through raw values if no scaling

When a consumer calls iio_read_channel_processed() the IIO core
tries to apply scaling to the value, but if the channel only
supports reading raw values, we should return that raw value
to the cosumer instead of an error.

This is what userspace is expected to do with sensors only
providing raw values so the kernel should do the same, so as to
avoid adding scaling boilerplate to drivers for hardware that
actually return processed values from raw reads.

A sensor not providing a scale, but providing a _raw attribute
could be valid if for example the scale is the default of 1,
but an offset needs to be applied to convert to the _processed
form.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/inkern.c