提交 3c80372d 编写于 作者: L Lars-Peter Clausen 提交者: Jonathan Cameron

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: NLars-Peter Clausen <lars@metafoo.de>
Signed-off-by: NJonathan Cameron <jic23@kernel.org>
上级 9ab82f07
...@@ -39,7 +39,7 @@ struct adis16080_state { ...@@ -39,7 +39,7 @@ struct adis16080_state {
struct spi_device *us; struct spi_device *us;
struct mutex buf_lock; struct mutex buf_lock;
u8 buf[2] ____cacheline_aligned; __be16 buf ____cacheline_aligned;
}; };
static int adis16080_read_sample(struct iio_dev *indio_dev, static int adis16080_read_sample(struct iio_dev *indio_dev,
...@@ -60,8 +60,7 @@ 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); mutex_lock(&st->buf_lock);
st->buf[0] = addr >> 8; st->buf = cpu_to_be16(addr | ADIS16080_DIN_WRITE);
st->buf[1] = addr;
spi_message_init(&m); spi_message_init(&m);
spi_message_add_tail(&t[0], &m); spi_message_add_tail(&t[0], &m);
...@@ -69,7 +68,7 @@ static int adis16080_read_sample(struct iio_dev *indio_dev, ...@@ -69,7 +68,7 @@ static int adis16080_read_sample(struct iio_dev *indio_dev,
ret = spi_sync(st->us, &m); ret = spi_sync(st->us, &m);
if (ret == 0) 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); mutex_unlock(&st->buf_lock);
return ret; return ret;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册