Bug#514301: xserver-xorg-video-radeon: ignores existing EDID from ACPI BIOS even when DDC fails

Alex Deucher alexdeucher at gmail.com
Sat Feb 7 08:19:24 PST 2009


On Fri, Feb 6, 2009 at 9:16 PM, Nikolaus Schulz <microschulz at web.de> wrote:
> On Fri, Feb 06, 2009 at 08:22:11PM -0500, Alex Deucher wrote:
>> On Thu, Feb 5, 2009 at 9:22 PM, Nikolaus Schulz <microschulz at web.de> wrote:
>> > On my Thinkpad T42 laptop, the builtin LCD display apparently doesn't support
>> > DDC, see:
>> >
>> > luigi[tmp] sudo get-edid
>> > get-edid: get-edid version 1.4.1
>> >
>> >        Performing real mode VBE call
>> >        Interrupt 0x10 ax=0x4f00 bx=0x0 cx=0x0
>> >        Function supported
>> >        Call successful
>> >
>> >        VBE version 200
>> >        VBE string at 0x11110 "ATI MOBILITY RADEON 7500"
>> >
>> > VBE/DDC service about to be called
>> >        Report DDC capabilities
>> >
>> >        Performing real mode VBE call
>> >        Interrupt 0x10 ax=0x4f15 bx=0x0 cx=0x0
>> >        Function supported
>> >        Call successful
>> >
>> >        Monitor and video card combination does not support DDC1 transfers
>> >        Monitor and video card combination does not support DDC2 transfers
>> >        0 seconds per 128 byte EDID block transfer
>> >        Screen is not blanked during DDC transfer
>> >
>> > Reading next EDID block
>> >
>> > VBE/DDC service about to be called
>> >        Read EDID
>> >
>> >        Performing real mode VBE call
>> >        Interrupt 0x10 ax=0x4f15 bx=0x1 cx=0x0
>> >        Function supported
>> >        Call failed
>> >
>> > The EDID data should not be trusted as the VBE call failed
>> > Error: output block unchanged
>> > luigi[tmp]$ sudo ddcprobe
>> > vbe: VESA 2.0 detected.
>> > oem: ATI MOBILITY RADEON 7500
>> > memory: 32704kb
>> > mode: 320x200x32k
>> > mode: 320x200x64k
>> > mode: 320x200x16m
>> > mode: 1600x1200x256
>> > mode: 640x400x256
>> > mode: 640x480x256
>> > mode: 640x480x32k
>> > mode: 640x480x64k
>> > mode: 640x480x16m
>> > mode: 1600x1200x32k
>> > mode: 800x600x256
>> > mode: 800x600x32k
>> > mode: 800x600x64k
>> > mode: 800x600x16m
>> > mode: 1600x1200x64k
>> > mode: 1024x768x256
>> > mode: 1024x768x32k
>> > mode: 1024x768x64k
>> > mode: 1024x768x16m
>> > mode: 1280x1024x256
>> > mode: 1280x1024x32k
>> > mode: 1280x1024x64k
>> > mode: 1280x1024x16m
>> > edid:
>> > edidfail
>> > luigi[tmp]$
>> >
>> > I have tried get-edid with various controller numbers because, if I read
>> > Xorg.0.log correctly, the LVDS doesn't map to controller #0, but to no
>> > avail.
>> >
>> > However, there *is* a valid EDID available from the ACPI BIOS,
>> > accessible in /proc/acpi/video/VID/LCD0/EDID, but it is ignored:
>> >
>> > luigi[tmp]$ hd /proc/acpi/video/VID/LCD0/EDID
>> > 00000000  00 ff ff ff ff ff ff 00  24 4d 55 0a 00 00 00 00  |........$MU.....|
>> > 00000010  00 0e 01 03 80 1e 17 78  ee ee 91 a3 54 4c 99 26  |.......x....TL.&|
>> > 00000020  0f 50 54 21 08 00 01 01  01 01 01 01 01 01 01 01  |.PT!............|
>> > 00000030  01 01 01 01 01 01 64 19  00 40 41 00 26 30 18 88  |......d.. at A.&0..|
>> > 00000040  36 00 30 e4 10 00 00 18  00 00 00 fc 00 54 68 69  |6.0..........Thi|
>> > 00000050  6e 6b 50 61 64 20 4c 43  44 20 00 00 00 fc 00 31  |nkPad LCD .....1|
>> > 00000060  30 32 34 78 37 36 38 0a  20 20 20 20 00 00 00 00  |024x768.    ....|
>> > 00000070  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 aa  |................|
>> > 00000080
>> > luigi[tmp]$
>> >
>> > I see no reason why the X server (or the driver, who ever is responsible)
>> > shouldn't check the ACPI BIOS if DDC fails, especially as DDC failures seem to
>> > be not uncommon with laptop panels.
>> >
>> > I have worked around my problem by manually feeding the ACPI EDID to parse-edid
>> > and copying the result to xorg.conf, see below.  xrandr still thinks the
>> > display has zero width and height, but xdpyinfo and Xorg.0.log look fine
>> > AFAICT.  Let me know if you need more information.
>>
>> The driver is able to to get the panel timings out of the bios lcd
>> info table, so even if there is no panel edid, the panel will still
>> work properly.  I suspect the ACPI edid is generated from the lcd info
>> table anyway.
>
> Hmm, I guess that depends on how you define "properly working".  It was
> working, yes, but properly?  At least it didn't get the display size and
> dpi right, but defaulted to standard 96 dpi.  Which wasn't a horrible
> failure, but still.

You can specify the display size in your config.  I'll ask the bios
guys if there is a better way of getting the display size info for
panels without an edid.

Alex





More information about the xorg-driver-ati mailing list