Re: [PATCH] ASoC: rt5651: use msleep for large delays

From: Mark Brown
Date: Wed Jan 11 2017 - 13:07:36 EST


On Wed, Jan 11, 2017 at 03:06:45PM +0000, Nicholas Mc Guire wrote:
> On Wed, Jan 11, 2017 at 02:59:26PM +0000, Mark Brown wrote:

> > If you're doing conversions like this I'd expect us to be picking the
> > lower number rather than the higher number - people are saying "wait for
> > at least X and at most Y" and msleep() is "wait for at least X" so we
> > should be picking X.

> useleep_range() sets the timer to max and only if there happens to be a
> timer between min and max uses that - so the mean of runs is generally
> a bit above max. E.g.

Yes, but as fairly recently discussed somewhere on the lists (and IIRC
actually fixed) approximately no users expect or want that behaviour -
it's a really confusing interface given that sleep functions almost
always have a "delay up until X" interface and interfaces that can wake
things up earlier than the expected delay generally flag that condition.
The applications for the "delay for X but it's OK to wake me up this
much earlier" are really quite limited. If you look at the conversions
that were done to usleep_range() you'll notice that most of them follow
this pattern and had their delays extended in the process.

Attachment: signature.asc
Description: PGP signature