iio: imu: st_lsm6dsx: fix endianness in st_lsm6dsx_read_oneshot()
authorLorenzo Bianconi <lorenzo.bianconi@redhat.com>
Mon, 1 Jan 2018 18:54:42 +0000 (19:54 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 28 Mar 2018 16:24:49 +0000 (18:24 +0200)
commit 7b9ebe428266fb7e0a6d769bb3ff3fcb6044b15e upstream.

Apply le16_to_cpu() to data read from the sensor in order to take into
account architecture endianness

Fixes: 290a6ce11d93 (iio: imu: add support to lsm6dsx driver)
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c

index b485540da89e3c9b8fb8541d6469851e277e68e3..cce0c93accef2dd8493f8925fa241b328936de8b 100644 (file)
@@ -392,7 +392,7 @@ static int st_lsm6dsx_read_oneshot(struct st_lsm6dsx_sensor *sensor,
 
        st_lsm6dsx_sensor_disable(sensor);
 
-       *val = (s16)data;
+       *val = (s16)le16_to_cpu(data);
 
        return IIO_VAL_INT;
 }