RE: [PATCH 2/2] drivers: i2c: qup: Fix error handling

From: Sricharan
Date: Fri May 06 2016 - 00:09:35 EST


Hi Andy,

> -----Original Message-----
> From: Andy Gross [mailto:andy.gross@xxxxxxxxxx]
> Sent: Thursday, May 05, 2016 10:52 PM
> To: Sricharan R <sricharan@xxxxxxxxxxxxxx>
> Cc: devicetree@xxxxxxxxxxxxxxx; architt@xxxxxxxxxxxxxx; linux-arm-
> msm@xxxxxxxxxxxxxxx; ntelkar@xxxxxxxxxxxxxx; galak@xxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx; linux-i2c@xxxxxxxxxxxxxxx; iivanov@mm-
> sol.com; agross@xxxxxxxxxxxxxx; dmaengine@xxxxxxxxxxxxxxx; linux-arm-
> kernel@xxxxxxxxxxxxxxxxxxx
> Subject: Re: [PATCH 2/2] drivers: i2c: qup: Fix error handling
>
> On Mon, May 02, 2016 at 10:53:57AM +0530, Sricharan R wrote:
> > Among the bus errors reported from the QUP_MASTER_STATUS register
> only
> > NACK is considered and transfer gets suspended, while other errors are
> > ignored. Correct this and suspend the transfer for other errors as
> > well. This avoids unnessecary 'timeouts' which happens when waiting
> > for events that would never happen when there is already an error
> > condition on the bus.
> >
> > Signed-off-by: Sricharan R <sricharan@xxxxxxxxxxxxxx>
> > ---
> > drivers/i2c/busses/i2c-qup.c | 34 +++++++++++++++++++++++++---------
> > 1 file changed, 25 insertions(+), 9 deletions(-)
>
> Reviewed-by: Andy Gross <andy.gross@xxxxxxxxxx>
>
Thanks.
> <snip>
>
> > @@ -1227,6 +1240,9 @@ static int qup_i2c_xfer_v2(struct i2c_adapter
> *adap,
> > struct qup_i2c_dev *qup = i2c_get_adapdata(adap);
> > int ret, len, idx = 0, use_dma = 0;
> >
> > + qup->bus_err = 0;
> > + qup->qup_err = 0;
> > +
>
> What about the initial setting of these? Does this need to be removed
from
> the main xfer function?
Thanks for the catch. Will remove in bam_xfer , redundant.
Now that there are i2x_xfer_v2 and i2c_xfer,
its not set in the old i2c_xfer call, where as it should be set there
as well. I will change this and resend.

Regards,
Sricharan