<div dir="auto">I had the same doubt the other day about the replacement of udelay() with usleep_range(). The corresponding range for the single argument value of udelay() is quite confusing as I couldn't decide the range. <div dir="auto">But as much as I noticed <a href="http://checkpatch.pl" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">checkpatch.pl</a> gives warning for replacing udelay() with usleep_range() by checking the argument value of udelay(). In the documentation, it is written udelay() should be used for a sleep time of at most 10 microseconds but between 10 microseconds and 20 milliseconds, usleep_range() should be used. </div><div dir="auto">I think the range is code specific and will depend on what range is acceptable and doesn't break the code.</div><div dir="auto"> Please correct me if I am wrong.</div><div dir="auto"><br></div><div dir="auto">More clarification on this issue will be helpful.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, 29 Mar 2020, 15:17 Julia Lawall, <<a href="mailto:julia.lawall@inria.fr" rel="noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">julia.lawall@inria.fr</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
On Sun, 29 Mar 2020, John Wyatt wrote:<br>
<br>
> On Sun, 2020-03-29 at 11:28 +0200, Julia Lawall wrote:<br>
> ><br>
> > On Sun, 29 Mar 2020, John B. Wyatt IV wrote:<br>
> ><br>
> > > Fix style issue with usleep_range being reported as preferred over<br>
> > > udelay.<br>
> > ><br>
> > > Issue reported by checkpatch.<br>
> > ><br>
> > > Please review.<br>
> > ><br>
> > > As written in Documentation/timers/timers-howto.rst udelay is the<br>
> > > generally preferred API. hrtimers, as noted in the docs, may be too<br>
> > > expensive for this short timer.<br>
> > ><br>
> > > Are the docs out of date, or, is this a checkpatch issue?<br>
> > ><br>
> > > Signed-off-by: John B. Wyatt IV <<a href="mailto:jbwyatt4@gmail.com" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">jbwyatt4@gmail.com</a>><br>
> > > ---<br>
> > >  drivers/staging/fbtft/fb_agm1264k-fl.c | 2 +-<br>
> > >  1 file changed, 1 insertion(+), 1 deletion(-)<br>
> > ><br>
> > > diff --git a/drivers/staging/fbtft/fb_agm1264k-fl.c<br>
> > > b/drivers/staging/fbtft/fb_agm1264k-fl.c<br>
> > > index eeeeec97ad27..019c8cce6bab 100644<br>
> > > --- a/drivers/staging/fbtft/fb_agm1264k-fl.c<br>
> > > +++ b/drivers/staging/fbtft/fb_agm1264k-fl.c<br>
> > > @@ -85,7 +85,7 @@ static void reset(struct fbtft_par *par)<br>
> > >   dev_dbg(par->info->device, "%s()\n", __func__);<br>
> > ><br>
> > >   gpiod_set_value(par->gpio.reset, 0);<br>
> > > - udelay(20);<br>
> > > + usleep_range(20, 20);<br>
> ><br>
> > usleep_range should have a range, eg usleep_range(50, 100);.  But it<br>
> > is<br>
> > hard to know a priori what the range should be.  So it is probably<br>
> > better<br>
> > to leave the code alone.<br>
><br>
> Understood.<br>
><br>
> With the question I wrote in the commit message:<br>
><br>
> "As written in Documentation/timers/timers-howto.rst udelay is the<br>
> generally preferred API. hrtimers, as noted in the docs, may be too<br>
> expensive for this short timer.<br>
><br>
> Are the docs out of date, or, is this a checkpatch issue?"<br>
><br>
> Is usleep_range too expensive for this operation?<br>
><br>
> Why does checkpatch favor usleep_range while the docs favor udelay?<br>
<br>
I don't know the answer in detail, but it is quite possible that<br>
checkpatch doesn't pay any attention to the delay argument.  Checkpatch is<br>
a perl script that highlights things that may be of concern.  It is not a<br>
precise static analsis tool.<br>
<br>
As a matter of form, all of your Please review comments should have been<br>
put below the ---.  Currently, if someone had wanted to apply the patch,<br>
you would make them do extra work to remove this information.<br>
<br>
julia<br>
<br>
><br>
> ><br>
> > julia<br>
> ><br>
> > >   gpiod_set_value(par->gpio.reset, 1);<br>
> > >   mdelay(120);<br>
> > >  }<br>
> > > --<br>
> > > 2.25.1<br>
> > ><br>
> > > --<br>
> > > You received this message because you are subscribed to the Google<br>
> > > Groups "outreachy-kernel" group.<br>
> > > To unsubscribe from this group and stop receiving emails from it,<br>
> > > send an email to <a href="mailto:outreachy-kernel%2Bunsubscribe@googlegroups.com" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">outreachy-kernel+unsubscribe@googlegroups.com</a>.<br>
> > > To view this discussion on the web visit<br>
> > > <a href="https://groups.google.com/d/msgid/outreachy-kernel/20200329092204.770405-1-jbwyatt4%40gmail.com" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">https://groups.google.com/d/msgid/outreachy-kernel/20200329092204.770405-1-jbwyatt4%40gmail.com</a><br>
> > > .<br>
> > ><br>
><br>
><br>
<br>
-- <br>
You received this message because you are subscribed to the Google Groups "outreachy-kernel" group.<br>
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="mailto:outreachy-kernel%2Bunsubscribe@googlegroups.com" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">outreachy-kernel+unsubscribe@googlegroups.com</a>.<br>
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/outreachy-kernel/alpine.DEB.2.21.2003291144460.2990%40hadrien" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">https://groups.google.com/d/msgid/outreachy-kernel/alpine.DEB.2.21.2003291144460.2990%40hadrien</a>.<br>
</blockquote></div>