diff options
author | Michael Hennerich <michael.hennerich@analog.com> | 2010-10-12 10:30:51 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-10-12 08:59:32 -0700 |
commit | 1139df53533e8a4327f3867c6b32202ac62b19ee (patch) | |
tree | e852ff3cb37a543d99b872645456f95287867396 /drivers/staging/iio/adc/ad799x_core.c | |
parent | 668413e9e7ad0bc53eeba2465dafd66dbc817996 (diff) |
staging: iio: adc: ad799x miscellaneous cleanups
-Simplify by using iio_alloc_pollfunc helper function
-Print in_scale in decimal format.
-Simplify ring pointer dereferences
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Acked-by: Jonathan Cameron <jic23@cam.ac.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/iio/adc/ad799x_core.c')
-rw-r--r-- | drivers/staging/iio/adc/ad799x_core.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/staging/iio/adc/ad799x_core.c b/drivers/staging/iio/adc/ad799x_core.c index 35fad73f0ebf..6309d521a864 100644 --- a/drivers/staging/iio/adc/ad799x_core.c +++ b/drivers/staging/iio/adc/ad799x_core.c @@ -428,14 +428,11 @@ static ssize_t ad799x_show_scale(struct device *dev, /* Driver currently only support internal vref */ struct iio_dev *dev_info = dev_get_drvdata(dev); struct ad799x_state *st = iio_dev_get_devdata(dev_info); + /* Corresponds to Vref / 2^(bits) */ + unsigned int scale_uv = (st->int_vref_mv * 1000) >> st->chip_info->bits; - if ((1 << (st->chip_info->bits + 1)) - > st->int_vref_mv) - return sprintf(buf, "0.5\n"); - else - return sprintf(buf, "%d\n", - st->int_vref_mv >> st->chip_info->bits); + return sprintf(buf, "%d.%d\n", scale_uv / 1000, scale_uv % 1000); } static IIO_DEVICE_ATTR(in_scale, S_IRUGO, ad799x_show_scale, NULL, 0); |