summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIrina Tirdea <irina.tirdea@intel.com>2015-07-24 16:28:05 +0300
committerJonathan Cameron <jic23@kernel.org>2015-08-02 20:38:22 +0300
commitae067cb68d2ef42d4a84eeaf07411fe2936f48c4 (patch)
tree07d69f6e0d1ded397d1d3ea89bb08bbb2f0ffd42
parent2854c098e222a706b91cc83b4a91dbfd97212765 (diff)
downloadlinux-ae067cb68d2ef42d4a84eeaf07411fe2936f48c4.tar.xz
tools: iio: fix mask for 32 bit sensor data
When the the sensor data uses 32 bits out of 32, generic_buffer prints the value 0 for all data read. In this case, the mask is shifted 32 bits, which is beyond the size of an integer. This will lead to the mask always being 0. Before printing, the mask is applied to the raw value, thus generating a final value of 0. Fix the mask by shifting a 64 bit value instead of an integer. Signed-off-by: Irina Tirdea <irina.tirdea@intel.com> Acked-by: Hartmut Knaack <knaack.h@gmx.de> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
-rw-r--r--tools/iio/iio_utils.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/tools/iio/iio_utils.c b/tools/iio/iio_utils.c
index 1dcdf03955cb..a95270f33353 100644
--- a/tools/iio/iio_utils.c
+++ b/tools/iio/iio_utils.c
@@ -168,7 +168,7 @@ int iioutils_get_type(unsigned *is_signed, unsigned *bytes, unsigned *bits_used,
if (*bits_used == 64)
*mask = ~0;
else
- *mask = (1 << *bits_used) - 1;
+ *mask = (1ULL << *bits_used) - 1;
*is_signed = (signchar == 's');
if (fclose(sysfsfp)) {