summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@ukulele.keithp.com>2006-12-21 23:30:37 -0800
committerKeith Packard <keithp@ukulele.keithp.com>2006-12-21 23:30:37 -0800
commitc237e930615f1b048895efe988d28503f5d67c37 (patch)
tree3c67f571f80a33d08fd4a61ab7f1776234bddf0d
parentd8c5dba4d797fc50d7b2b5855f34e2d2e2ad3e4f (diff)
Use Vesa DDC timeouts for all I2C busses.
The default I2C timeouts are very short, and while most modern monitors have no trouble responding at that rate, some older ones cannot manage.
-rw-r--r--src/i830_i2c.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/i830_i2c.c b/src/i830_i2c.c
index 8fd12ea9..450f9de0 100644
--- a/src/i830_i2c.c
+++ b/src/i830_i2c.c
@@ -365,6 +365,14 @@ I830I2CInit(ScrnInfoPtr pScrn, I2CBusPtr *bus_ptr, int i2c_reg, char *name)
#endif
pI2CBus->DriverPrivate.uval = i2c_reg;
+ /* Assume all busses are used for DDCish stuff */
+
+ pI2CBus->ByteTimeout = 2200; /* VESA DDC spec 3 p. 43 (+10 %) */
+ pI2CBus->StartTimeout = 550;
+ pI2CBus->BitTimeout = 40;
+ pI2CBus->ByteTimeout = 40;
+ pI2CBus->AcknTimeout = 40;
+
if (!xf86I2CBusInit(pI2CBus))
return FALSE;