Re: [PATCH 1/4] i2c: xlp9xx: return ENXIO on slave address NACK

From: dann frazier
Date: Thu Feb 22 2018 - 13:02:49 EST


On Tue, Jan 30, 2018 at 7:28 AM, George Cherian
<gcherian@xxxxxxxxxxxxxxxxxx> wrote:
> Gentle Ping on this series.

I've been using these on a few Cavium Sabre boards, which previously
had an unusable system interface (/dev/ipmi) due to timeouts or just
enumerations failures. So, fwiw:

Tested-by: dann frazier <dann.frazier@xxxxxxxxxxxxx>

-dann

> On 01/18/2018 11:09 AM, George Cherian wrote:
>>
>> From: Dmitry Bazhenov <dmitry.bazhenov@xxxxxxxxxx>
>>
>> Fix the driver violation of the common practice to return
>> ENXIO error on a slave address NACK.
>>
>> Signed-off-by: Dmitry Bazhenov <dmitry.bazhenov@xxxxxxxxxx>
>> Signed-off-by: George Cherian <george.cherian@xxxxxxxxxx>
>> ---
>> drivers/i2c/busses/i2c-xlp9xx.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/i2c/busses/i2c-xlp9xx.c
>> b/drivers/i2c/busses/i2c-xlp9xx.c
>> index b970bf8..6d78cdc 100644
>> --- a/drivers/i2c/busses/i2c-xlp9xx.c
>> +++ b/drivers/i2c/busses/i2c-xlp9xx.c
>> @@ -324,7 +324,8 @@ static int xlp9xx_i2c_xfer_msg(struct xlp9xx_i2c_dev
>> *priv, struct i2c_msg *msg,
>> dev_dbg(priv->dev, "transfer error %x!\n", priv->msg_err);
>> if (priv->msg_err & XLP9XX_I2C_INTEN_BUSERR)
>> xlp9xx_i2c_init(priv);
>> - return -EIO;
>> + return (priv->msg_err & XLP9XX_I2C_INTEN_NACKADDR) ?
>> + -ENXIO : -EIO;
>> }
>> if (timeleft == 0) {
>>
>
> Regards
> -George