Re: [PATCH v5 3/5] iio:temperature:mlx90632: Convert polling while loop to do-while

From: Andy Shevchenko
Date: Fri Aug 14 2020 - 08:11:30 EST


On Fri, Aug 14, 2020 at 12:42 PM Crt Mori <cmo@xxxxxxxxxxx> wrote:
> On Fri, 14 Aug 2020 at 11:32, Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote:
> > On Fri, Aug 14, 2020 at 10:33 AM Crt Mori <cmo@xxxxxxxxxxx> wrote:
> > > On Thu, 13 Aug 2020 at 21:41, Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote:
> > > > On Thu, Aug 13, 2020 at 4:04 PM Crt Mori <cmo@xxxxxxxxxxx> wrote:
> > > > > On Thu, 13 Aug 2020 at 13:24, Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote:

...

> > > > > usleep_range(10000, 11000);

Above for 4 attempts is up to 44000us.

With iopoll.h case we may set
delay_us = 18000 (the result range will be 4500, 18000)
timeout_us = 72000 (this will give up to 16 attempts to read)

> I tested on Beaglebone with the 100 * 10000 as timeout_us and I always
> got the -ETIMEDOUT error. I also tested in the other case where
> delay_us is 250000 and then timeout_us would be 4*250000 and I have
> also received -ETIMEDOUT as a response.

I don't see how delay_us should be bigger than 20ms (20000).

> I can prepare a patch with the iopoll.h API and maybe you will spot
> the mistake, as after rechecking timeout_us is indeed 64bit and is
> only used in the time comparison operations and not with timers.

Perhaps above will clarify.

--
With Best Regards,
Andy Shevchenko