Quoting Daniel Campello (2020-07-28 08:12:51) > diff --git a/drivers/iio/proximity/sx9310.c b/drivers/iio/proximity/sx9310.c > index 2465064971d0a7..3956fd679c6db9 100644 > --- a/drivers/iio/proximity/sx9310.c > +++ b/drivers/iio/proximity/sx9310.c > @@ -810,22 +810,17 @@ static int sx9310_init_compensation(struct iio_dev *indio_dev) > if (ret < 0) > return ret; > > - for (i = 100; i >= 0; i--) { > - msleep(20); > - ret = regmap_read(data->regmap, SX9310_REG_STAT1, &val); > - if (ret < 0) > - goto out; > - if (!(val & SX9310_COMPSTAT_MASK)) > - break; > - } > - > - if (i < 0) { > - dev_err(&data->client->dev, > - "initial compensation timed out: 0x%02x", val); > - ret = -ETIMEDOUT; > + ret = regmap_read_poll_timeout(data->regmap, SX9310_REG_STAT1, val, > + !(val & SX9310_REG_STAT1_COMPSTAT_MASK), > + 20000, 2000000); > + if (ret) { > + if (ret == -ETIMEDOUT) > + dev_err(&data->client->dev, > + "0x02 << 3l compensation timed out: 0x%02x", What does 0x02 << 3l mean? > + val); > + return ret; > } >