Re: [PATCH v1 1/1] iio: pressure: dps310: Adjust Timeout Settings

From: Jonathan Cameron
Date: Sun Sep 10 2023 - 09:50:34 EST


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;
> > }
> >
>
>
>
>
>