i2c: gxp: return proper error on address NACK
authorWolfram Sang <wsa@kernel.org>
Mon, 20 Feb 2023 14:40:59 +0000 (15:40 +0100)
committerWolfram Sang <wsa@kernel.org>
Fri, 3 Mar 2023 20:00:26 +0000 (21:00 +0100)
According to Documentation/i2c/fault-codes.rst, NACK after sending an
address should be -ENXIO.

Signed-off-by: Wolfram Sang <wsa@kernel.org>
drivers/i2c/busses/i2c-gxp.c

index 352dedf6292f1af47974f1ba8d8d7e0f086b5d9d..fda7809e72baa7e5c22a38ed20fa92d6e31076a7 100644 (file)
@@ -129,8 +129,10 @@ static int gxp_i2c_master_xfer(struct i2c_adapter *adapter,
        if (time_left == 0)
                return -ETIMEDOUT;
 
-       if (drvdata->state == GXP_I2C_ADDR_NACK ||
-           drvdata->state == GXP_I2C_DATA_NACK)
+       if (drvdata->state == GXP_I2C_ADDR_NACK)
+               return -ENXIO;
+
+       if (drvdata->state == GXP_I2C_DATA_NACK)
                return -EIO;
 
        return ret;