On Wed, 6 Sep 2023 14:55:25 +0000 Lakshmi Yadlapati <lakshmiy@xxxxxxxxxx> wrote: > Fixes: 7b4ab4abcea4 ("iio: pressure: dps310: Reset chip after timeout") > > Thanks, > Lakshmi > Applied to the fixes-togreg branch of iio.git Note I'll probably rebase on rc1 before sending a pull request. Thanks, Jonathan > On 9/3/23, 6:52 AM, "Jonathan Cameron" <jic23@xxxxxxxxxx <mailto:jic23@xxxxxxxxxx>> wrote: > > > On Tue, 29 Aug 2023 13:02:22 -0500 > Lakshmi Yadlapati <lakshmiy@xxxxxxxxxx <mailto:lakshmiy@xxxxxxxxxx>> wrote: > > > > The DPS310 sensor chip has been encountering intermittent errors while > > reading the sensor device across various system designs. This issue causes > > the chip to become "stuck," preventing the indication of "ready" status > > for pressure and temperature measurements in the MEAS_CFG register. > > > > To address this issue, this commit fixes the timeout settings to improve > > sensor stability: > > - After sending a reset command to the chip, the timeout has been extended > > from 2.5 ms to 15 ms, aligning with the DPS310 specification. > > - The read timeout value of the MEAS_CFG register has been adjusted from > > 20ms to 30ms to match the specification. > > > > Signed-off-by: Lakshmi Yadlapati <lakshmiy@xxxxxxxxxx <mailto:lakshmiy@xxxxxxxxxx>> > Hi Lakshmi, > > > This seems reasonable to me, but as we probably want to backport it to > stable kernels, please could you figure out an appropriate Fixes tag. > > > Fine to just reply to this email with the tag rather than resend. > > > Thanks > > > Jonathan > > > > --- > > drivers/iio/pressure/dps310.c | 8 ++++---- > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/iio/pressure/dps310.c b/drivers/iio/pressure/dps310.c > > index b10dbf5cf494..1ff091b2f764 100644 > > --- a/drivers/iio/pressure/dps310.c > > +++ b/drivers/iio/pressure/dps310.c > > @@ -57,8 +57,8 @@ > > #define DPS310_RESET_MAGIC 0x09 > > #define DPS310_COEF_BASE 0x10 > > > > -/* Make sure sleep time is <= 20ms for usleep_range */ > > -#define DPS310_POLL_SLEEP_US(t) min(20000, (t) / 8) > > +/* Make sure sleep time is <= 30ms for usleep_range */ > > +#define DPS310_POLL_SLEEP_US(t) min(30000, (t) / 8) > > /* Silently handle error in rate value here */ > > #define DPS310_POLL_TIMEOUT_US(rc) ((rc) <= 0 ? 1000000 : 1000000 / (rc)) > > > > @@ -402,8 +402,8 @@ static int dps310_reset_wait(struct dps310_data *data) > > if (rc) > > return rc; > > > > - /* Wait for device chip access: 2.5ms in specification */ > > - usleep_range(2500, 12000); > > + /* Wait for device chip access: 15ms in specification */ > > + usleep_range(15000, 55000); > > return 0; > > } > > > > > > >