Why querying of EDID is limited only to VBE version greater then 2.0?

Alex Deucher alexdeucher at gmail.com
Fri May 15 07:51:02 PDT 2009

On Fri, May 15, 2009 at 6:35 AM, Evgeny M. Zubok <evgeny.zubok at tochka.ru> wrote:
> I have S3 Trio64V2 with VBE 1.2 and I want to add the possibility of
> display autodetection via DDC to s3 driver. There is two ways to deal
> with DDC: (i) VESA BIOS Extension and (ii) directly from videochip's DDC
> registers. The later method currently is impossible to implement due to
> the lack of information about DDC registers in accessible
> documentation. So I have tried the former method. Retrieving of EDID can
> be done with vbeDoEDID function from vbe.c, but I discovered that there
> is VBE version checking in this function -- if VBE version is lower than
> 2.0 the function returns NULL and didn't perform EDID query.
>    if (pVbe->version < 0x200)
>        return NULL;
> However S3 Trio64V2 with VBE 1.2 has DDC extention! I have verified this
> with get-edid program. What the real reason of limitation on the VBE
> version?

Most of the S3 chips use similar methods for i2c, I'd bet the same
registers are used in the virge or savage drivers:


More information about the xorg mailing list