iio: imu: st_lsm6dsx: set sensor->odr value just in st_lsm6dsx_write_raw()
authorLorenzo Bianconi <lorenzo.bianconi83@gmail.com>
Mon, 18 Sep 2017 17:49:57 +0000 (19:49 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 24 Sep 2017 15:24:35 +0000 (16:24 +0100)
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>
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c

index d45d714..c68cc7c 100644 (file)
@@ -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: