Commit 2761a81c authored by Tomoya MORINAGA's avatar Tomoya MORINAGA Committed by Wolfram Sang

i2c-eg20t: Call init() when wait-event timeout occurs

Signed-off-by: default avatarTomoya MORINAGA <tomoya.rohm@gmail.com>
Signed-off-by: default avatarWolfram Sang <w.sang@pengutronix.de>
parent 531183e5
...@@ -445,7 +445,10 @@ static s32 pch_i2c_writebytes(struct i2c_adapter *i2c_adap, ...@@ -445,7 +445,10 @@ static s32 pch_i2c_writebytes(struct i2c_adapter *i2c_adap,
pch_i2c_init(adap); pch_i2c_init(adap);
return -EAGAIN; return -EAGAIN;
} else { /* wait-event timeout */ } else { /* wait-event timeout */
pch_err(adap, "%s(L.%d):wait-event timeout\n",
__func__, __LINE__);
pch_i2c_stop(adap); pch_i2c_stop(adap);
pch_i2c_init(adap);
return -ETIME; return -ETIME;
} }
} else { } else {
...@@ -469,7 +472,10 @@ static s32 pch_i2c_writebytes(struct i2c_adapter *i2c_adap, ...@@ -469,7 +472,10 @@ static s32 pch_i2c_writebytes(struct i2c_adapter *i2c_adap,
pch_i2c_init(adap); pch_i2c_init(adap);
return -EAGAIN; return -EAGAIN;
} else { /* wait-event timeout */ } else { /* wait-event timeout */
pch_err(adap, "%s(L.%d):wait-event timeout\n",
__func__, __LINE__);
pch_i2c_stop(adap); pch_i2c_stop(adap);
pch_i2c_init(adap);
return -ETIME; return -ETIME;
} }
...@@ -490,7 +496,10 @@ static s32 pch_i2c_writebytes(struct i2c_adapter *i2c_adap, ...@@ -490,7 +496,10 @@ static s32 pch_i2c_writebytes(struct i2c_adapter *i2c_adap,
pch_clrbit(adap->pch_base_address, PCH_I2CSR, pch_clrbit(adap->pch_base_address, PCH_I2CSR,
I2CMIF_BIT); I2CMIF_BIT);
} else { /* wait-event timeout */ } else { /* wait-event timeout */
pch_err(adap, "%s(L.%d):wait-event timeout\n",
__func__, __LINE__);
pch_i2c_stop(adap); pch_i2c_stop(adap);
pch_i2c_init(adap);
return -ETIME; return -ETIME;
} }
} }
...@@ -598,7 +607,10 @@ static s32 pch_i2c_readbytes(struct i2c_adapter *i2c_adap, struct i2c_msg *msgs, ...@@ -598,7 +607,10 @@ static s32 pch_i2c_readbytes(struct i2c_adapter *i2c_adap, struct i2c_msg *msgs,
pch_i2c_init(adap); pch_i2c_init(adap);
return -EAGAIN; return -EAGAIN;
} else { /* wait-event timeout */ } else { /* wait-event timeout */
pch_err(adap, "%s(L.%d):wait-event timeout\n",
__func__, __LINE__);
pch_i2c_stop(adap); pch_i2c_stop(adap);
pch_i2c_init(adap);
return -ETIME; return -ETIME;
} }
pch_i2c_restart(adap); pch_i2c_restart(adap);
...@@ -621,7 +633,10 @@ static s32 pch_i2c_readbytes(struct i2c_adapter *i2c_adap, struct i2c_msg *msgs, ...@@ -621,7 +633,10 @@ static s32 pch_i2c_readbytes(struct i2c_adapter *i2c_adap, struct i2c_msg *msgs,
pch_i2c_init(adap); pch_i2c_init(adap);
return -EAGAIN; return -EAGAIN;
} else { /* wait-event timeout */ } else { /* wait-event timeout */
pch_err(adap, "%s(L.%d):wait-event timeout\n",
__func__, __LINE__);
pch_i2c_stop(adap); pch_i2c_stop(adap);
pch_i2c_init(adap);
return -ETIME; return -ETIME;
} }
} else { } else {
...@@ -648,7 +663,10 @@ static s32 pch_i2c_readbytes(struct i2c_adapter *i2c_adap, struct i2c_msg *msgs, ...@@ -648,7 +663,10 @@ static s32 pch_i2c_readbytes(struct i2c_adapter *i2c_adap, struct i2c_msg *msgs,
pch_i2c_init(adap); pch_i2c_init(adap);
return -EAGAIN; return -EAGAIN;
} else { /* wait-event timeout */ } else { /* wait-event timeout */
pch_err(adap, "%s(L.%d):wait-event timeout\n",
__func__, __LINE__);
pch_i2c_stop(adap); pch_i2c_stop(adap);
pch_i2c_init(adap);
return -ETIME; return -ETIME;
} }
...@@ -677,7 +695,10 @@ static s32 pch_i2c_readbytes(struct i2c_adapter *i2c_adap, struct i2c_msg *msgs, ...@@ -677,7 +695,10 @@ static s32 pch_i2c_readbytes(struct i2c_adapter *i2c_adap, struct i2c_msg *msgs,
return -EIO; return -EIO;
} }
} else { /* wait-event timeout */ } else { /* wait-event timeout */
pch_err(adap, "%s(L.%d):wait-event timeout\n",
__func__, __LINE__);
pch_i2c_stop(adap); pch_i2c_stop(adap);
pch_i2c_init(adap);
return -ETIME; return -ETIME;
} }
...@@ -698,7 +719,10 @@ static s32 pch_i2c_readbytes(struct i2c_adapter *i2c_adap, struct i2c_msg *msgs, ...@@ -698,7 +719,10 @@ static s32 pch_i2c_readbytes(struct i2c_adapter *i2c_adap, struct i2c_msg *msgs,
return -EIO; return -EIO;
} }
} else { /* wait-event timeout */ } else { /* wait-event timeout */
pch_err(adap, "%s(L.%d):wait-event timeout\n",
__func__, __LINE__);
pch_i2c_stop(adap); pch_i2c_stop(adap);
pch_i2c_init(adap);
return -ETIME; return -ETIME;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment