From: Shardar Shariff Md <smohammed@xxxxxxxxxx> When I2C_HEADER_CONT_ON_NAK bit in IO header is set then “No ACK from slave” error is not reported (NACK is considered as ACK and transfer is continued). So if I2C_ERR_NO_ACK is set, it would imply I2C_M_IGNORE_NAK is not set and hence this code will never execute. When I2C_HEADER_CONT_ON_NAK bit in IO header is set then “No ACK from slave” error is not reported. Condition (msg->flags & I2C_M_IGNORE_NAK) will never be hit Signed-off-by: Shardar Shariff Md <smohammed@xxxxxxxxxx> Signed-off-by: Krishna Yarlagadda <kyarlagadda@xxxxxxxxxx> --- drivers/i2c/busses/i2c-tegra.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c index 1577296..c6c870c 100644 --- a/drivers/i2c/busses/i2c-tegra.c +++ b/drivers/i2c/busses/i2c-tegra.c @@ -1336,11 +1336,8 @@ static int tegra_i2c_xfer_msg(struct tegra_i2c_dev *i2c_dev, return -EAGAIN; } - if (i2c_dev->msg_err == I2C_ERR_NO_ACK) { - if (msg->flags & I2C_M_IGNORE_NAK) - return 0; + if (i2c_dev->msg_err == I2C_ERR_NO_ACK) return -EREMOTEIO; - } return -EIO; } -- 2.7.4