[media] em28xx-i2c: Fix error code for I2C error transfers
authorMauro Carvalho Chehab <m.chehab@samsung.com>
Sat, 4 Jan 2014 08:42:11 +0000 (05:42 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Sun, 12 Jan 2014 13:54:14 +0000 (11:54 -0200)
commite63b009d6e772e3fe6df39345ca2f8949d4497e6
tree24fff76ddb674d423be5d5cdebd05f0a27b42778
parentd20e4ed6d30c6ecee315eea0efb3449c3591d09e
[media] em28xx-i2c: Fix error code for I2C error transfers

Follow the error codes for I2C as described at Documentation/i2c/fault-codes.

In the case of the I2C status register (0x05), this is mapped into:

- ENXIO - when reg 05 returns 0x10
- ETIMEDOUT - when the device is not temporarily not responding
      (e. g. reg 05 returning something not 0x10 or 0x00)
- EIO - for generic I/O errors that don't fit into the above.

In the specific case of 0-byte reads, used only during I2C device
probing, it keeps returning -ENODEV.

TODO: return EBUSY when reg 05 returns 0x20 on em2874 and upper.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/usb/em28xx/em28xx-i2c.c