diff options
author | Sebastian Reichel <sre@debian.org> | 2014-02-24 19:38:03 +0100 |
---|---|---|
committer | Sebastian Reichel <sre@kernel.org> | 2014-04-26 01:48:57 +0200 |
commit | 6e7221a9f883e6fd6884c7b842d4e7c7d4baf9d4 (patch) | |
tree | 17afe73e9115203a8db6f452eec24b2f26814be8 /drivers | |
parent | bbc4f2ae2d48eb3e88c8e8d9f3fa03dfb562f543 (diff) | |
download | linux-6e7221a9f883e6fd6884c7b842d4e7c7d4baf9d4.tar.bz2 |
iio: inkern: add iio_read_channel_average_raw
Add iio_read_channel_average_raw to support reading
averaged raw values in consumer drivers.
Signed-off-by: Sebastian Reichel <sre@debian.org>
Acked-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/iio/inkern.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/iio/inkern.c b/drivers/iio/inkern.c index 0cf5f8e06cfc..adeba5a0ecf7 100644 --- a/drivers/iio/inkern.c +++ b/drivers/iio/inkern.c @@ -443,6 +443,24 @@ err_unlock: } EXPORT_SYMBOL_GPL(iio_read_channel_raw); +int iio_read_channel_average_raw(struct iio_channel *chan, int *val) +{ + int ret; + + mutex_lock(&chan->indio_dev->info_exist_lock); + if (chan->indio_dev->info == NULL) { + ret = -ENODEV; + goto err_unlock; + } + + ret = iio_channel_read(chan, val, NULL, IIO_CHAN_INFO_AVERAGE_RAW); +err_unlock: + mutex_unlock(&chan->indio_dev->info_exist_lock); + + return ret; +} +EXPORT_SYMBOL_GPL(iio_read_channel_average_raw); + static int iio_convert_raw_to_processed_unlocked(struct iio_channel *chan, int raw, int *processed, unsigned int scale) { |