iio: accel: bmc150: fix endianness when reading axes
authorIrina Tirdea <irina.tirdea@intel.com>
Tue, 29 Mar 2016 12:35:45 +0000 (15:35 +0300)
committerJonathan Cameron <jic23@kernel.org>
Sun, 3 Apr 2016 10:16:11 +0000 (11:16 +0100)
commit2215f31dc6f88634c1916362e922b1ecdce0a6b3
tree91692db1d75e0cef5b85494a930d8c329e9e5fa2
parent9b090a98e95c2530ef0ce474e3b6218621b8ae25
iio: accel: bmc150: fix endianness when reading axes

For big endian platforms, reading the axes will return
invalid values.

The device stores each axis value in a 16 bit little
endian register. The driver uses regmap_read_bulk to get
the axis value, resulting in a 16 bit little endian value.
This needs to be converted to cpu endianness to work
on big endian platforms.

Fix endianness for big endian platforms by converting
the values for the axes read from little endian to
cpu.

This is also partially fixed in commit b6fb9b6d6552 ("iio:
accel: bmc150: optimize transfers in trigger handler").

Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/accel/bmc150-accel-core.c