From: Francois Berder <fberder@outlook.fr>
Date: Fri, 8 Sep 2023 16:47:46 +0000 (+0200)
Subject: drivers: mediatek: Fix error handling in mtk_i2c_do_transfer
X-Git-Tag: v2025.01-rc5-pxa1908~857^2~2
X-Git-Url: http://git.dujemihanovic.xyz/img/static//%22brlog.php?a=commitdiff_plain;h=8cf61051ae6e13e253de0d18501c196bc70522fc;p=u-boot.git

drivers: mediatek: Fix error handling in mtk_i2c_do_transfer

Errors were handled only if an I2C transfer timed out
and received a NACK which is very unlikely. This commit
changes the condition such that errors are handled if
an I2C transfer times out or received a NACK.

Signed-off-by: Francois Berder <fberder@outlook.fr>
Reviewed-by: Heiko Schocher <hs@denx.de>
---

diff --git a/drivers/i2c/mtk_i2c.c b/drivers/i2c/mtk_i2c.c
index 2f331d3216..5592fe9181 100644
--- a/drivers/i2c/mtk_i2c.c
+++ b/drivers/i2c/mtk_i2c.c
@@ -621,7 +621,7 @@ static int mtk_i2c_do_transfer(struct mtk_i2c_priv *priv,
 	i2c_writel(priv, REG_INTR_MASK, ~(restart_flag | I2C_HS_NACKERR |
 		  I2C_ACKERR | I2C_TRANSAC_COMP));
 
-	if (!tmo && trans_error != 0) {
+	if (tmo || trans_error != 0) {
 		if (tmo) {
 			ret = -ETIMEDOUT;
 			if (!priv->filter_msg)