linux-iio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Crt Mori <cmo@melexis.com>
To: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: Jonathan Cameron <jic23@kernel.org>,
	linux-iio <linux-iio@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v5 3/5] iio:temperature:mlx90632: Convert polling while loop to do-while
Date: Thu, 13 Aug 2020 13:13:53 +0200	[thread overview]
Message-ID: <CAKv63uv=b60B9RXBJF4HEhMOowu-qbGrv7LsmJVvkkERSida-A@mail.gmail.com> (raw)
In-Reply-To: <CAHp75VfNwb5uBp=H0295LEJjXy1+=V5yvSN1PHbtMYzgg=_EAA@mail.gmail.com>

On Thu, 13 Aug 2020 at 13:03, Andy Shevchenko <andy.shevchenko@gmail.com> wrote:
>
> On Thu, Aug 13, 2020 at 10:53 AM Crt Mori <cmo@melexis.com> wrote:
> >
> > Reduce number of lines and improve readability to convert polling while
> > loops to do-while. The iopoll.h interface was not used, because we
> > require more than 20ms timeout, because time for sensor to perform a
> > measurement is around 10ms and it needs to perform measurements for each
> > channel (which currently is 3).
>
> I don't see how it prevents using iopoll.h. It uses usleep_range()
> under the hood in the same way you did here, but open coded.
>

One loop is indeed 10ms and that is not the problem, the problem is
that timeout is at least 3 calls of this data ready (3 channels), so
that is at minimum 30ms of timeout, or it could even be 4 in worse
case scenario and that is outside of the range for usleep to measure.
So in case of the other loop, where we wait 200ms for channel refresh
it is also out of scope. Timeout should be in number of tries or in
msleep range if you ask me.

> ...
>
> > -       while (tries-- > 0) {
> > +       do {
> >                 ret = regmap_read(data->regmap, MLX90632_REG_STATUS,
> >                                   &reg_status);
> >                 if (ret < 0)
> >                         return ret;
> > -               if (reg_status & MLX90632_STAT_DATA_RDY)
> > -                       break;
> >                 usleep_range(10000, 11000);
> > -       }
> > +       } while (!(reg_status & MLX90632_STAT_DATA_RDY) && tries--);
> >
> >         if (tries < 0) {
> >                 dev_err(&data->client->dev, "data not ready");
>
> --
> With Best Regards,
> Andy Shevchenko

  reply	other threads:[~2020-08-13 11:14 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-13  7:51 [PATCH v5 0/5] iio: temperature: mlx90632: Add extended calibration calculations Crt Mori
2020-08-13  7:51 ` [PATCH v5 1/5] iio:temperature:mlx90632: Reduce number of equal calulcations Crt Mori
2020-08-13  7:51 ` [PATCH v5 2/5] iio:temperature:mlx90632: Add kerneldoc to the internal struct Crt Mori
2020-08-13 10:54   ` Andy Shevchenko
2020-08-13  7:51 ` [PATCH v5 3/5] iio:temperature:mlx90632: Convert polling while loop to do-while Crt Mori
2020-08-13 11:03   ` Andy Shevchenko
2020-08-13 11:13     ` Crt Mori [this message]
2020-08-13 11:24       ` Andy Shevchenko
2020-08-13 13:03         ` Crt Mori
2020-08-13 19:40           ` Andy Shevchenko
2020-08-14  7:32             ` Crt Mori
2020-08-14  9:31               ` Andy Shevchenko
2020-08-14  9:42                 ` Crt Mori
2020-08-14 12:11                   ` Andy Shevchenko
2020-08-13  7:51 ` [PATCH v5 4/5] iio:temperature:mlx90632: Adding extended calibration option Crt Mori
2020-08-13 11:06   ` Andy Shevchenko
2020-08-13  7:51 ` [PATCH v5 5/5] iio:temperature:mlx90632: Some stylefixing leftovers Crt Mori
2020-08-13 11:01   ` Andy Shevchenko
2020-08-13 13:11     ` Crt Mori
2020-08-13 19:41       ` Andy Shevchenko
2020-08-16  8:38         ` Jonathan Cameron

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAKv63uv=b60B9RXBJF4HEhMOowu-qbGrv7LsmJVvkkERSida-A@mail.gmail.com' \
    --to=cmo@melexis.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=jic23@kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).