i2c-pxa2xx: check timeout correctly
timeout here maybe 0 if the event occured and a task with a higher priority stole the cpu and we were sleeping longer than the timeout value we specified. In case of a real timeout I changed the error code to I2C_RETRY so we retry the transfer. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Dirk Brandewie <dirk.brandewie@gmail.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
This commit is contained in:
parent
c66dc52919
commit
93c92cfdec
|
@ -770,8 +770,10 @@ static int i2c_pxa_do_xfer(struct pxa_i2c *i2c, struct i2c_msg *msg, int num)
|
|||
*/
|
||||
ret = i2c->msg_idx;
|
||||
|
||||
if (timeout == 0)
|
||||
if (!timeout && i2c->msg_num) {
|
||||
i2c_pxa_scream_blue_murder(i2c, "timeout");
|
||||
ret = I2C_RETRY;
|
||||
}
|
||||
|
||||
out:
|
||||
return ret;
|
||||
|
|
Loading…
Reference in a new issue