diff options
author | Jonathan Cameron <jic23@kernel.org> | 2013-12-11 22:45:00 +0400 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2013-12-18 01:50:54 +0400 |
commit | 83d5f3246fc05a629278240c09688fd9960b97db (patch) | |
tree | 6ca2e930b969763a41cdea7e024a5e2c6154e2d7 /drivers/staging/iio/adc | |
parent | c6236c0ce39c809c336ca929f68cf8ad02cf94e0 (diff) | |
download | linux-83d5f3246fc05a629278240c09688fd9960b97db.tar.xz |
staging:iio:ad799x fix incorrect endianness specification for buffer elements
Due to use of the IIO_ST macro, the endianness element of scan_type was
not being set. The result is that it will default to the cpu endianness
whereas this driver will fill the buffer with big endian data. Thus for
little endian machines, userspace will miss interpret the data.
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Diffstat (limited to 'drivers/staging/iio/adc')
-rw-r--r-- | drivers/staging/iio/adc/ad799x_core.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/staging/iio/adc/ad799x_core.c b/drivers/staging/iio/adc/ad799x_core.c index 9428be82b655..bad4c8a9d1e9 100644 --- a/drivers/staging/iio/adc/ad799x_core.c +++ b/drivers/staging/iio/adc/ad799x_core.c @@ -409,7 +409,13 @@ static const struct iio_event_spec ad799x_events[] = { .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), \ .scan_index = (_index), \ - .scan_type = IIO_ST('u', _realbits, 16, 12 - (_realbits)), \ + .scan_type = { \ + .sign = 'u', \ + .realbits = (_realbits), \ + .storagebits = 16, \ + .shift = 12 - (_realbits), \ + .endianness = IIO_BE, \ + }, \ .event_spec = _ev_spec, \ .num_event_specs = _num_ev_spec, \ } |