On Thu, 2 Apr 2020 15:40:59 +0200 (CEST) yarl-baudig@xxxxxxxxxx wrote: > 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. Hi Lary, Which sensor has ODR in the register at address 0? I see it's a few of the magnetometers from a quick grep, but please state it in the cover letter. Also please add a suitable Fixes tag as we will want this backported if appropriate. Thanks, Jonathan > > Signed-off-by: Lary Gibaud <yarl-baudig@xxxxxxxxxx> > --- > drivers/iio/common/st_sensors/st_sensors_core.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/iio/common/st_sensors/st_sensors_core.c b/drivers/iio/common/st_sensors/st_sensors_core.c > index a0c2cbd60c6f..cccd4c26dfa4 100644 > --- a/drivers/iio/common/st_sensors/st_sensors_core.c > +++ b/drivers/iio/common/st_sensors/st_sensors_core.c > @@ -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_data *sdata = iio_priv(indio_dev); > > - if (!sdata->sensor_settings->odr.addr) > + if (!sdata->sensor_settings->odr.mask) > return 0; > > err = st_sensors_match_odr(sdata->sensor_settings, odr, &odr_out);