[Xorg] DDC/CI, need advice on implementation

Nicolas Boichat nicolas at boichat.ch
Mon Jul 5 14:49:28 PDT 2004


I reverse-engineered a part of the DDC/CI protocol. This protocol is
used to control a monitor by software, without using the OSD.

I'll soon write some web pages explaining what I did to reverse-engineer
it, and on the protocol itself.

I modified the DDC driver
(xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c), because it is the
easiest place to get access to the graphics card I2C bus (DDC2 and
DDC/CI are located on the same I2C bus), and I'm now able to read values
from my Mitsubishi Diamond Pro 2060u (I mean read contrast, brightness,
red, green and blue levels for example), but I still can't write values
(I don't think I'm very far).

Now I have a problem, I need to have access to the DDC/CI bus from an
external application, because, of course, I don't want to change the
monitor parameters only when the server loads.

I don't know much about XFree/Xorg, so I need your help:
 - Should I create a new shared library in xc/lib? (for example
 - Or Should I add functions to an existing library ? (in this case,
which one? Xxf86vm? Xxf86misc?)
 - Or should I do something else??

I would like to add in this library simple wrappers to functions that
are in I2C and DDC modules, is it possible and well designed ?

I hope I've been clear enough, if it is not the case please ask me.

Best regards,

Nicolas Boichat

More information about the xorg mailing list