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

Andy Gross andy.gross at linaro.org
Thu May 5 10:22:19 PDT 2016


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 at codeaurora.org>
> ---
>  drivers/i2c/busses/i2c-qup.c | 34 +++++++++++++++++++++++++---------
>  1 file changed, 25 insertions(+), 9 deletions(-)

Reviewed-by: Andy Gross <andy.gross at linaro.org>

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



More information about the linux-arm-kernel mailing list