mirror of
https://github.com/torvalds/linux.git
synced 2024-12-15 15:41:58 +00:00
[media] em28xx-i2c: fix the error code for unknown errors
Commit e63b009d6e
"em28xx-i2c: Fix error code for I2C error transfers"
changed the code to return -ETIMEDOUT on all unknown errors.
But the proper error code for unknown errors is -EIO.
So only report -ETIMEDOUT in case of the errors 0x02 and 0x04, which
are according to Mauro Carvalho Chehab's tests related to i2c clock
stretching and return -EIO for the rest.
Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
This commit is contained in:
parent
8ae8cd6c3e
commit
123a17d142
@ -226,10 +226,18 @@ static int em28xx_i2c_send_bytes(struct em28xx *dev, u16 addr, u8 *buf,
|
||||
* (even with high payload) ...
|
||||
*/
|
||||
}
|
||||
if (i2c_debug)
|
||||
em28xx_warn("write to i2c device at 0x%x timed out (status=%i)\n",
|
||||
addr, ret);
|
||||
return -ETIMEDOUT;
|
||||
|
||||
if (ret == 0x02 || ret == 0x04) {
|
||||
/* NOTE: these errors seem to be related to clock stretching */
|
||||
if (i2c_debug)
|
||||
em28xx_warn("write to i2c device at 0x%x timed out (status=%i)\n",
|
||||
addr, ret);
|
||||
return -ETIMEDOUT;
|
||||
}
|
||||
|
||||
em28xx_warn("write to i2c device at 0x%x failed with unknown error (status=%i)\n",
|
||||
addr, ret);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -279,8 +287,17 @@ static int em28xx_i2c_recv_bytes(struct em28xx *dev, u16 addr, u8 *buf, u16 len)
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
em28xx_warn("unknown i2c error (status=%i)\n", ret);
|
||||
return -ETIMEDOUT;
|
||||
if (ret == 0x02 || ret == 0x04) {
|
||||
/* NOTE: these errors seem to be related to clock stretching */
|
||||
if (i2c_debug)
|
||||
em28xx_warn("write to i2c device at 0x%x timed out (status=%i)\n",
|
||||
addr, ret);
|
||||
return -ETIMEDOUT;
|
||||
}
|
||||
|
||||
em28xx_warn("write to i2c device at 0x%x failed with unknown error (status=%i)\n",
|
||||
addr, ret);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user