summaryrefslogtreecommitdiff
path: root/src/i830_i2c.c
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 /src/i830_i2c.c
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.
Diffstat (limited to 'src/i830_i2c.c')
-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;