diff options
author | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2013-12-28 05:42:47 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2014-01-10 03:10:07 -0500 |
commit | d20e4ed6d30c6ecee315eea0efb3449c3591d09e (patch) | |
tree | 618cb9da20c3ed822495338301b3eb77bc47efdc /drivers/media/usb/em28xx/em28xx.h | |
parent | d1b7213b480a42c9bc78938a1b3f4bc14089467f (diff) |
[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>
Diffstat (limited to 'drivers/media/usb/em28xx/em28xx.h')
-rw-r--r-- | drivers/media/usb/em28xx/em28xx.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/drivers/media/usb/em28xx/em28xx.h b/drivers/media/usb/em28xx/em28xx.h index b0aa8497c1a9..efdf38642768 100644 --- a/drivers/media/usb/em28xx/em28xx.h +++ b/drivers/media/usb/em28xx/em28xx.h | |||
@@ -183,8 +183,21 @@ | |||
183 | 183 | ||
184 | #define EM28XX_INTERLACED_DEFAULT 1 | 184 | #define EM28XX_INTERLACED_DEFAULT 1 |
185 | 185 | ||
186 | /* time in msecs to wait for i2c writes to finish */ | 186 | /* |
187 | #define EM2800_I2C_XFER_TIMEOUT 20 | 187 | * Time in msecs to wait for i2c xfers to finish. |
188 | * 35ms is the maximum time a SMBUS device could wait when | ||
189 | * clock stretching is used. As the transfer itself will take | ||
190 | * some time to happen, set it to 35 ms. | ||
191 | * | ||
192 | * Ok, I2C doesn't specify any limit. So, eventually, we may need | ||
193 | * to increase this timeout. | ||
194 | * | ||
195 | * FIXME: this assumes that an I2C message is not longer than 1ms. | ||
196 | * This is actually dependent on the I2C bus speed, although most | ||
197 | * devices use a 100kHz clock. So, this assumtion is true most of | ||
198 | * the time. | ||
199 | */ | ||
200 | #define EM28XX_I2C_XFER_TIMEOUT 36 | ||
188 | 201 | ||
189 | /* time in msecs to wait for AC97 xfers to finish */ | 202 | /* time in msecs to wait for AC97 xfers to finish */ |
190 | #define EM28XX_AC97_XFER_TIMEOUT 100 | 203 | #define EM28XX_AC97_XFER_TIMEOUT 100 |