i2c: st: Fix return in case of arbitration lost
authorMaxime COQUELIN <maxime.coquelin@st.com>
Fri, 28 Feb 2014 12:52:56 +0000 (13:52 +0100)
committerWolfram Sang <wsa@the-dreams.de>
Mon, 10 Mar 2014 16:35:08 +0000 (17:35 +0100)
This patch fixes the error returned to the i2c_transfer function
to -EAGAIN in case of arbitratin lost, so that the retry mechanism
can be used.

Signed-off-by: Maxime Coquelin <maxime.coquelin@st.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-st.c

index 9cf715d..8720161 100644 (file)
@@ -574,7 +574,7 @@ static irqreturn_t st_i2c_isr_thread(int irq, void *data)
                writel_relaxed(it, i2c_dev->base + SSC_IEN);
 
                st_i2c_set_bits(i2c_dev->base + SSC_I2C, SSC_I2C_STOPG);
-               c->result = -EIO;
+               c->result = -EAGAIN;
                break;
 
        default: