EDID info contains DS_ASCII_STR with nonprintable characters
Submitted by Nico R.
Assigned to Xorg Project Team
If I enable ModeDebug in the xorg.conf file, I can see the following lines in the server log:
(II) intel(0): Ranges: V min: 0 V max: 200 Hz, H min: 0 H max: 200 kHz, (II) intel(0): FD161^B154P2 (II) intel(0): (?HT}^B^A (II) intel(0): EDID (in hex): (II) intel(0): 00ffffffffffff004ca3503200000000 (II) intel(0): 00100103802115780a87f594574f8c27 (II) intel(0): 27505400000001010101010101010101 (II) intel(0): 010101010101932e90a0601a1e403020 (II) intel(0): 26004bcf100000190000000f00000000 (II) intel(0): 00000000003cd2026400000000fe0046 (II) intel(0): 443136310231353450320a20000000fe (II) intel(0): 00283f48547da3d3ff02010a20200058
The second and third line are obviously printed, because a DS_ASCII_STR is detected (xorg-server-1.6.0/hw/xfree86/ddc/print_edid.c:350). But this string contains characters which are not printable (like ^B; and also some characters I can't even enter here, like y with diaresis).
Either this is a bug in the EDID block or in the code evaluating it or both are correct, but the printout is just "not nice". In the third case, I'd suggest changing the printing code so that nonprintable characters (0x00 to 0x1F, 0x7F to 0xFF) are written as "\x02", for example (for ^B). Nonprintable characters in log files are sometimes problematic to handle.
If the EDID block is buggy, perhaps a quirk should be added?
I am unsure whether this only happens with this monitor and with the intel driver or also with others. Perhaps the component for this bug should be DDX/xorg instead?
Version: 7.4 (2008.09)