2017-03-02 14:57:34

by Marc Dietrich

[permalink] [raw]
Subject: Re: [Outreachy kernel] [PATCH] staging: nvec: cleanup USLEEP_RANGEcheckpatch checks

Hi Simran,

Am Donnerstag, 2. M?rz 2017, 15:48:13 CET schrieb SIMRAN SINGHAL:
> On Thursday, March 2, 2017 at 8:06:40 PM UTC+5:30, Julia Lawall wrote:
> > On Thu, 2 Mar 2017, simran singhal wrote:
> > > Resolve strict checkpatch USLEEP_RANGE checks by converting delays and
> > > sleeps as described in ./Documentation/timers/timers-howto.txt.
> > >
> > > CHECK: usleep_range is preferred over udelay; see Documentation/
> > > timers/timers-howto.txt
> > >
> > > Signed-off-by: simran singhal <[email protected] <javascript:>>

I prefer not to change this. The whole interrupt routine is very wonky, and
changing some delays might break the communication with the i2c master. Also
this is in interrupt context, so a change to usleep_range may not by
justified.

Marc



> > > ---
> > >
> > > drivers/staging/nvec/nvec.c | 4 ++--
> > > 1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/drivers/staging/nvec/nvec.c b/drivers/staging/nvec/nvec.c
> > > index c1feccf..cd35e64 100644
> > > --- a/drivers/staging/nvec/nvec.c
> > > +++ b/drivers/staging/nvec/nvec.c
> > > @@ -631,7 +631,7 @@ static irqreturn_t nvec_interrupt(int irq, void
> >
> > *dev)
> >
> > > break;
> > >
> > > case 2: /* first byte after command */
> > >
> > > if (status == (I2C_SL_IRQ | RNW | RCVD)) {
> > >
> > > - udelay(33);
> > > + usleep_range(33, 100);
> >
> > How did you choose the upper limit.
> >
> > I believe that Greg previously suggested not to make these changes if you
> > have no way to test them.
> >
> > Julia, After going through the reply given by Nicholas Mc Guire
>
> https://www.mail-archive.com/[email protected]/msg16464.html
> in this reply he has mentioned that even the range of 10 microsecond is
> enough,
> so I prefer to take 100 as upper limit.
>
> Simran
>
> julia
>
> > > if (nvec->rx->data[0] != 0x01) {
> > >
> > > dev_err(nvec->dev,
> > >
> > > "Read without prior read
> >
> > command\n");
> >
> > > @@ -718,7 +718,7 @@ static irqreturn_t nvec_interrupt(int irq, void
> >
> > *dev)
> >
> > > * We experience less incomplete messages with this delay than
> >
> > without
> >
> > > * it, but we don't know why. Help is appreciated.
> > > */
> > >
> > > - udelay(100);
> > > + usleep_range(100, 200);
> > >
> > > return IRQ_HANDLED;
> > >
> > > }
> >
> > Groups "outreachy-kernel" group.
> >
> > > To unsubscribe from this group and stop receiving emails from it, send
> >
> > an email to [email protected] <javascript:>.
> >
> > > To post to this group, send email to [email protected]
> >
> > <javascript:>.
> >
> > > To view this discussion on the web visit
> >
> > https://groups.google.com/d/msgid/outreachy-kernel/20170302142418.GA16773%
> > 40singhal-Inspiron-5558.>
> > > For more options, visit https://groups.google.com/d/optout.


Attachments:
signature.asc (488.00 B)
This is a digitally signed message part.

2017-03-08 12:55:58

by Thierry Reding

[permalink] [raw]
Subject: Re: [Outreachy kernel] [PATCH] staging: nvec: cleanup USLEEP_RANGEcheckpatch checks

On Thu, Mar 02, 2017 at 03:57:01PM +0100, Marc Dietrich wrote:
> Hi Simran,
>
> Am Donnerstag, 2. März 2017, 15:48:13 CET schrieb SIMRAN SINGHAL:
> > On Thursday, March 2, 2017 at 8:06:40 PM UTC+5:30, Julia Lawall wrote:
> > > On Thu, 2 Mar 2017, simran singhal wrote:
> > > > Resolve strict checkpatch USLEEP_RANGE checks by converting delays and
> > > > sleeps as described in ./Documentation/timers/timers-howto.txt.
> > > >
> > > > CHECK: usleep_range is preferred over udelay; see Documentation/
> > > > timers/timers-howto.txt
> > > >
> > > > Signed-off-by: simran singhal <[email protected] <javascript:>>
>
> I prefer not to change this. The whole interrupt routine is very wonky, and
> changing some delays might break the communication with the i2c master. Also
> this is in interrupt context, so a change to usleep_range may not by
> justified.

Yeah, I think this is going to trigger a WARN_ON from somewhere in the
scheduler because of the interrupt context. I suppose checkpatch could
be made smarter about this, though I doubt my perl skills would be up
to it.

Thierry


Attachments:
(No filename) (1.07 kB)
signature.asc (833.00 B)
Download all attachments