> -----Original Message-----
> From: James Hogan
> Sent: 28 July 2015 14:53
> To: Sifan Naeem; Wolfram Sang; linux-...@vger.kernel.org
> Cc: Stable kernel (v3.19+)
> Subject: Re: [PATCH 6/8] i2c: img-scb: remove start bit detected status after
> handling
> 
> On 27/07/15 12:47, Sifan Naeem wrote:
> > Remove start bit detected status after it is handled, doing so will
> > prevent this condition being hit for every interrupt on a particular
> > transfer.
> >
> > Fixes: 27bce4 ("i2c: img-scb: Add Imagination Technologies I2C SCB
> > driver")
> > Signed-off-by: Sifan Naeem <sifan.na...@imgtec.com>
> > Cc: Stable kernel (v3.19+) <stable@vger.kernel.org>
> > ---
> >  drivers/i2c/busses/i2c-img-scb.c |   16 ++++++++++++----
> >  1 file changed, 12 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/i2c/busses/i2c-img-scb.c
> > b/drivers/i2c/busses/i2c-img-scb.c
> > index 653f9bd..341130e 100644
> > --- a/drivers/i2c/busses/i2c-img-scb.c
> > +++ b/drivers/i2c/busses/i2c-img-scb.c
> > @@ -871,10 +871,18 @@ static unsigned int img_i2c_auto(struct img_i2c
> *i2c,
> >     }
> >
> >     /* Enable transaction halt on start bit */
> > -   if (!i2c->last_msg && i2c->line_status & LINESTAT_START_BIT_DET) {
> 
> i2c->line_status accumulates the line status bits that have been seen
> with each interrupt. If we're only interested in that bit from the current
> interrupt, should it just be referring to line_status (the argument to
> img_i2c_auto) instead of i2c->line_status?
> 
Yes, I can't think of why we cannot use line_status from the argument.

Thanks,
Sifan

> Cheers
> James
> 
> > -           img_i2c_transaction_halt(i2c, true);
> > -           /* we're no longer interested in the slave event */
> > -           i2c->int_enable &= ~INT_SLAVE_EVENT;
> > +   if (i2c->line_status & LINESTAT_START_BIT_DET) {
> > +           if (!i2c->last_msg) {
> > +                   img_i2c_transaction_halt(i2c, true);
> > +                   /* we're no longer interested in the slave event */
> > +                   i2c->int_enable &= ~INT_SLAVE_EVENT;
> > +           }
> > +           /*
> > +            * Remove start bit detected status after it is handled,
> > +            * doing so will prevent this condition being hit for
> > +            * every interrupt on a particular transfer.
> > +            */
> > +           i2c->line_status &= ~LINESTAT_START_BIT_DET;
> >     }
> >
> >     mod_timer(&i2c->check_timer, jiffies + msecs_to_jiffies(1));
> >

--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to