Skip to content

Commit

Permalink
staging:iio:adis16080: be16 cleanups
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Lars-Peter Clausen authored and Jonathan Cameron committed Jan 26, 2013
1 parent 9ab82f0 commit 3c80372
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions drivers/staging/iio/gyro/adis16080_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -60,16 +60,15 @@ 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);
spi_message_add_tail(&t[1], &m);

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;
Expand Down

0 comments on commit 3c80372

Please sign in to comment.