forked from Minki/linux
[media] em28xx: use a better value for I2C timeouts
In the lack of a better spec, let's assume the timeout values compatible with SMBus spec: http://smbus.org/specs/smbus110.pdf at chapter 8 - Electrical Characteristics of SMBus devices Ok, SMBus is a subset of I2C, and not all devices will be following it, but the timeout value before this patch was not even following the spec. So, while we don't have a better guess for it, use 35 + 1 ms as the timeout. Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
This commit is contained in:
parent
d1b7213b48
commit
d20e4ed6d3
@ -183,8 +183,21 @@
|
||||
|
||||
#define EM28XX_INTERLACED_DEFAULT 1
|
||||
|
||||
/* time in msecs to wait for i2c writes to finish */
|
||||
#define EM2800_I2C_XFER_TIMEOUT 20
|
||||
/*
|
||||
* Time in msecs to wait for i2c xfers to finish.
|
||||
* 35ms is the maximum time a SMBUS device could wait when
|
||||
* clock stretching is used. As the transfer itself will take
|
||||
* some time to happen, set it to 35 ms.
|
||||
*
|
||||
* Ok, I2C doesn't specify any limit. So, eventually, we may need
|
||||
* to increase this timeout.
|
||||
*
|
||||
* FIXME: this assumes that an I2C message is not longer than 1ms.
|
||||
* This is actually dependent on the I2C bus speed, although most
|
||||
* devices use a 100kHz clock. So, this assumtion is true most of
|
||||
* the time.
|
||||
*/
|
||||
#define EM28XX_I2C_XFER_TIMEOUT 36
|
||||
|
||||
/* time in msecs to wait for AC97 xfers to finish */
|
||||
#define EM28XX_AC97_XFER_TIMEOUT 100
|
||||
|
Loading…
Reference in New Issue
Block a user