iio: st_sensors: rely on odr mask to know if odr can be set
Indeed, relying on addr being not 0 cannot work because some device have
their register to set odr at address 0. As a matter of fact, if the odr
can be set, then there is a mask.
Sensors with ODR register at address 0 are: lsm303dlh, lsm303dlhc, lsm303dlm
Fixes: 7d24517267
("iio: common: st_sensors: check odr address value in st_sensors_set_odr()")
Signed-off-by: Lary Gibaud <yarl-baudig@mailoo.org>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
3b7f9dbb82
commit
e450e07c14
|
@ -79,7 +79,7 @@ int st_sensors_set_odr(struct iio_dev *indio_dev, unsigned int odr)
|
||||||
struct st_sensor_odr_avl odr_out = {0, 0};
|
struct st_sensor_odr_avl odr_out = {0, 0};
|
||||||
struct st_sensor_data *sdata = iio_priv(indio_dev);
|
struct st_sensor_data *sdata = iio_priv(indio_dev);
|
||||||
|
|
||||||
if (!sdata->sensor_settings->odr.addr)
|
if (!sdata->sensor_settings->odr.mask)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err = st_sensors_match_odr(sdata->sensor_settings, odr, &odr_out);
|
err = st_sensors_match_odr(sdata->sensor_settings, odr, &odr_out);
|
||||||
|
|
Loading…
Reference in New Issue