summary refs log tree commit diff
path: root/drivers/iio/imu
diff options
context:
space:
mode:
authorLorenzo Bianconi <lorenzo.bianconi83@gmail.com>2017-09-18 19:49:57 +0200
committerJonathan Cameron <Jonathan.Cameron@huawei.com>2017-09-24 16:24:35 +0100
commit5e3c3e3382e87a637c5c9229b4b539dfbf81c64b (patch)
tree8f8fd70360bf1e7a5dcec91ceddd123a4b1e97fe /drivers/iio/imu
parentba272e3bbeaee3b34ca6c616f7ad8d3c65f33f79 (diff)
downloadlinux-5e3c3e3382e87a637c5c9229b4b539dfbf81c64b.tar.gz
iio: imu: st_lsm6dsx: set sensor->odr value just in st_lsm6dsx_write_raw()
Update odr value in st_lsm6dsx_sensor data structure just in
st_lsm6dsx_write_raw() in order to avoid to set the same value
multiple times

Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@st.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Diffstat (limited to 'drivers/iio/imu')
-rw-r--r--drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
index d45d714acdd3..c68cc7c91928 100644
--- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
+++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
@@ -322,7 +322,6 @@ static int st_lsm6dsx_check_odr(struct st_lsm6dsx_sensor *sensor, u16 odr,
 		return -EINVAL;
 
 	*val = st_lsm6dsx_odr_table[sensor->id].odr_avl[i].val;
-	sensor->odr = odr;
 
 	return 0;
 }
@@ -449,6 +448,8 @@ static int st_lsm6dsx_write_raw(struct iio_dev *iio_dev,
 		u8 data;
 
 		err = st_lsm6dsx_check_odr(sensor, val, &data);
+		if (!err)
+			sensor->odr = val;
 		break;
 	}
 	default: