From mboxrd@z Thu Jan 1 00:00:00 1970 From: Felipe Balbi Subject: [PATCH 3/8] i2c: omap: fix error checking Date: Mon, 22 Oct 2012 12:46:53 +0300 Message-ID: <1350899218-13624-4-git-send-email-balbi@ti.com> References: <1350899218-13624-1-git-send-email-balbi@ti.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: In-Reply-To: <1350899218-13624-1-git-send-email-balbi-l0cyMroinI0@public.gmane.org> Sender: linux-i2c-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: Linux OMAP Mailing List , Tony Lindgren , Benoit Cousson , Linux ARM Kernel Mailing List , w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org, ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org, Shubhrajyoti Datta , Santosh Shilimkar , Felipe Balbi List-Id: linux-i2c@vger.kernel.org It's impossible to have Arbitration Lost, Read Overflow, and Tranmist Underflow all asserted at the same time. Those error conditions are mutually exclusive so what the code should be doing, instead, is check each error flag separataly. Signed-off-by: Felipe Balbi --- drivers/i2c/busses/i2c-omap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c index bea0277..e0eab38 100644 --- a/drivers/i2c/busses/i2c-omap.c +++ b/drivers/i2c/busses/i2c-omap.c @@ -587,9 +587,9 @@ static int omap_i2c_xfer_msg(struct i2c_adapter *adap, goto err_i2c_init; } - /* We have an error */ - if (dev->cmd_err & (OMAP_I2C_STAT_AL | OMAP_I2C_STAT_ROVR | - OMAP_I2C_STAT_XUDF)) { + if ((dev->cmd_err & OMAP_I2C_STAT_AL) + || (dev->cmd_err & OMAP_I2C_STAT_ROVR) + || (dev->cmd_err & OMAP_I2C_STAT_XUDF)) { ret = -EIO; goto err_i2c_init; } -- 1.8.0.rc0