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

Alex Deucher alexdeucher at gmail.com
Fri Feb 6 17:22:11 PST 2009


On Thu, Feb 5, 2009 at 9:22 PM, Nikolaus Schulz <microschulz at web.de> wrote:
> Package: xserver-xorg-video-radeon
> Version: 1:6.9.0-1+lenny4
> Severity: normal
>
> Hi,
>
> first, I'm filing this bug against the radeon driver, but I'm not sure if it's
> a driver issue or a problem of the X server.
>
> 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.

Alex





More information about the xorg-driver-ati mailing list