Why querying of EDID is limited only to VBE version greater then 2.0?
Evgeny M. Zubok
evgeny.zubok at tochka.ru
Fri May 15 10:04:01 PDT 2009
Simon Thum <simon.thum at gmx.de> writes:
> AFAIK the DDC stuff was endorsed in 2.0, so it's probably just a
> heuristic, not a hard limit. I'm not the maintainer but I guess a good
> patch is appreciated. IIRC the vbe bios does advertise if it has the
> DDC extension, which should be a preferable 'heuristic'.
As I understand from specification , the DDC supplements VESA Video
BIOS and isn't included into the VESA 1.2  or VESA 2.0 . The
presence of DDC can be verified by calling function 4F15h of int10h and
examining the contents of AX register. If AL != 4FH or AH != 0 after
calling then DDC isn't supported. This procedure is described in Section
6, 6.1 of  and 4, 4.1 of  and, therefore, actual for both VESA 2.0
and VESA 1.2. Function vbeProbeDDC (hw/xfree86/vbe/vbe.c) just doing
this stuff and is called from vbeReadEDID which is called from vbeDoEDID
just after VBE version check in question. VESA 1.2 specification defines
subfunctions from 00h to 07h, and subfunctions 08h-FFh are declared as
reserved . VESA 2.0 defines subfunctions 00h-0Fh, and 10-FFh are
reserved for VBE Supplemental Specifications . DDC's subfunction
number is 15h.
So I conclude that the VBE version in vbeDoEDID can be lowered to 1.2 as
soon as the procedure for verifying the presence of subfunction (15h in
the case of DDC) is defined in VESA 1.2 and VESA 2.0 specs.
 DDC - http://www.vesa.org/public/VBE/VBEDDC11.PDF
 VESA 1.2 - http://docs.ruudkoot.nl/vesasp12.txt
 VESA 2.0 - http://docs.ruudkoot.nl/vbe20.txt
More information about the xorg