mirror of
https://github.com/torvalds/linux.git
synced 2024-11-15 08:31:55 +00:00
staging:iio:adis16080: be16 cleanups
The sample buffer contains big endian 16bit words. So use the be16 datatype for the buffer and use the proper helper functions for endianness conversion instead of openconding it. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
parent
9ab82f0711
commit
3c80372dae
@ -39,7 +39,7 @@ struct adis16080_state {
|
||||
struct spi_device *us;
|
||||
struct mutex buf_lock;
|
||||
|
||||
u8 buf[2] ____cacheline_aligned;
|
||||
__be16 buf ____cacheline_aligned;
|
||||
};
|
||||
|
||||
static int adis16080_read_sample(struct iio_dev *indio_dev,
|
||||
@ -60,8 +60,7 @@ static int adis16080_read_sample(struct iio_dev *indio_dev,
|
||||
};
|
||||
|
||||
mutex_lock(&st->buf_lock);
|
||||
st->buf[0] = addr >> 8;
|
||||
st->buf[1] = addr;
|
||||
st->buf = cpu_to_be16(addr | ADIS16080_DIN_WRITE);
|
||||
|
||||
spi_message_init(&m);
|
||||
spi_message_add_tail(&t[0], &m);
|
||||
@ -69,7 +68,7 @@ static int adis16080_read_sample(struct iio_dev *indio_dev,
|
||||
|
||||
ret = spi_sync(st->us, &m);
|
||||
if (ret == 0)
|
||||
*val = sign_extend32(((st->buf[0] & 0xF) << 8) | st->buf[1], 11);
|
||||
*val = sign_extend32(be16_to_cpu(st->buf), 11);
|
||||
mutex_unlock(&st->buf_lock);
|
||||
|
||||
return ret;
|
||||
|
Loading…
Reference in New Issue
Block a user