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

From: Andy Gross
Date: Thu May 05 2016 - 13:22:26 EST


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>

<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?

> ret = pm_runtime_get_sync(qup->dev);
> if (ret < 0)
> goto out;