Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d20e4ed6 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

[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: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
parent d1b7213b
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -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