[PATCH] drm_edid: support CEA video modes

alanwww1 alanwww1 at gmail.com
Mon Nov 14 16:37:52 PST 2011


I ran a test with the CEA patch, on my Sandy Bridge system with a Samsung
HDTV hooked up with an Onkyo TX-SR-607 AV-receiver.
The patch works like charm. The so wanted missing modelines are there, both
in the kernel log and in the Xorg.log and I can now use them in any Media
Center application,

Dmesg before:

[   10.496714] [drm:drm_mode_debug_printmodeline], Modeline
18:"1920x1080" 60 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x48
0x5
[   10.496717] [drm:drm_mode_debug_printmodeline], Modeline
20:"1280x720" 50 74250 1280 1720 1760 1980 720 725 730 750 0x40 0x5
[   10.496719] [drm:drm_mode_debug_printmodeline], Modeline
19:"1280x720" 60 74250 1280 1390 1430 1650 720 725 730 750 0x40 0x5
[   10.496722] [drm:drm_mode_debug_printmodeline], Modeline
21:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa


Dmesg After:

[   10.777130] [drm:drm_mode_prune_invalid], Not using 1920x1080 mode 7
[   10.777132] [drm:drm_mode_debug_printmodeline], Modeline
26:"1920x1080" 0 74250 1920 2008 2052 2200 1080 1084 1094 1125 0x40
0x15
[   10.777134] [drm:drm_mode_prune_invalid], Not using 1920x1080 mode 7
[   10.777136] [drm:drm_helper_probe_single_connector_modes],
[CONNECTOR:14:HDMI-A-2] probed modes :
[   10.777138] [drm:drm_mode_debug_printmodeline], Modeline
22:"1920x1080" 60 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x48
0x5
[   10.777140] [drm:drm_mode_debug_printmodeline], Modeline
23:"1920x1080" 50 148500 1920 2448 2492 2640 1080 1084 1089 1125 0x40
0x5
[   10.777143] [drm:drm_mode_debug_printmodeline], Modeline
32:"1920x1080" 30 74250 1920 2008 2052 2200 1080 1084 1089 1125 0x40
0x5
[   10.777145] [drm:drm_mode_debug_printmodeline], Modeline
31:"1920x1080" 25 74250 1920 2448 2492 2640 1080 1084 1089 1125 0x40
0x5
[   10.777147] [drm:drm_mode_debug_printmodeline], Modeline
30:"1920x1080" 24 74250 1920 2558 2602 2750 1080 1084 1089 1125 0x40
0x5
[   10.777149] [drm:drm_mode_debug_printmodeline], Modeline
36:"2880x576" 50 108000 2880 2928 3184 3456 576 581 586 625 0x40 0xa
[   10.777151] [drm:drm_mode_debug_printmodeline], Modeline
35:"2880x480" 60 108000 2880 2944 3192 3432 480 489 495 525 0x40 0xa
[   10.777153] [drm:drm_mode_debug_printmodeline], Modeline
25:"1280x720" 50 74250 1280 1720 1760 1980 720 725 730 750 0x40 0x5
[   10.777155] [drm:drm_mode_debug_printmodeline], Modeline
24:"1280x720" 60 74250 1280 1390 1430 1650 720 725 730 750 0x40 0x5
[   10.777158] [drm:drm_mode_debug_printmodeline], Modeline
34:"1440x576" 50 54000 1440 1464 1592 1728 576 581 586 625 0x40 0xa
[   10.777160] [drm:drm_mode_debug_printmodeline], Modeline
33:"1440x480" 60 54000 1440 1472 1596 1716 480 489 495 525 0x40 0xa
[   10.777162] [drm:drm_mode_debug_printmodeline], Modeline
29:"720x576" 50 27000 720 732 796 864 576 581 586 625 0x40 0xa
[   10.777164] [drm:drm_mode_debug_printmodeline], Modeline
28:"720x480" 60 27000 720 736 798 858 480 489 495 525 0x40 0xa
[   10.777166] [drm:drm_mode_debug_printmodeline], Modeline
21:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa

Xorg before:

[    11.924] (II) intel(0): Printing probed modes for output HDMI2
[    11.924] (II) intel(0): Modeline "1920x1080"x60.0  148.50  1920
2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz)
[    11.924] (II) intel(0): Modeline "1280x720"x50.0   74.25  1280
1720 1760 1980  720 725 730 750 +hsync +vsync (37.5 kHz)
[    11.924] (II) intel(0): Modeline "1280x720"x60.0   74.25  1280
1390 1430 1650  720 725 730 750 +hsync +vsync (45.0 kHz)
[    11.924] (II) intel(0): Modeline "640x480"x60.0   25.20  640 656
752 800  480 490 492 525 -hsync -vsync (31.5 kHz)

Xorg after:

[   324.852] (II) intel(0): Printing probed modes for output HDMI2
[   324.852] (II) intel(0): Modeline "1920x1080"x60.0  148.50  1920
2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz)
[   324.852] (II) intel(0): Modeline "1920x1080"x50.0  148.50  1920
2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (56.2 kHz)
[   324.852] (II) intel(0): Modeline "1920x1080"x30.0   74.25  1920
2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (33.8 kHz)
[   324.852] (II) intel(0): Modeline "1920x1080"x25.0   74.25  1920
2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (28.1 kHz)
[   324.852] (II) intel(0): Modeline "1920x1080"x24.0   74.25  1920
2558 2602 2750  1080 1084 1089 1125 +hsync +vsync (27.0 kHz)
[   324.852] (II) intel(0): Modeline "2880x576"x50.0  108.00  2880
2928 3184 3456  576 581 586 625 -hsync -vsync (31.2 kHz)
[   324.852] (II) intel(0): Modeline "2880x480"x59.9  108.00  2880
2944 3192 3432  480 489 495 525 -hsync -vsync (31.5 kHz)
[   324.852] (II) intel(0): Modeline "1280x720"x50.0   74.25  1280
1720 1760 1980  720 725 730 750 +hsync +vsync (37.5 kHz)
[   324.852] (II) intel(0): Modeline "1280x720"x60.0   74.25  1280
1390 1430 1650  720 725 730 750 +hsync +vsync (45.0 kHz)
[   324.852] (II) intel(0): Modeline "1440x576"x50.0   54.00  1440
1464 1592 1728  576 581 586 625 -hsync -vsync (31.2 kHz)
[   324.852] (II) intel(0): Modeline "1440x480"x59.9   54.00  1440
1472 1596 1716  480 489 495 525 -hsync -vsync (31.5 kHz)
[   324.852] (II) intel(0): Modeline "720x576"x50.0   27.00  720 732
796 864  576 581 586 625 -hsync -vsync (31.2 kHz)
[   324.852] (II) intel(0): Modeline "720x480"x59.9   27.00  720 736
798 858  480 489 495 525 -hsync -vsync (31.5 kHz)
[   324.852] (II) intel(0): Modeline "640x480"x60.0   25.20  640 656
752 800  480 490 492 525 -hsync -vsync (31.5 kHz)


Full logs:

- Stock Kernel 3.2 RC1:
dmesg: http://paste.ubuntu.com/738790/
xorg.log: http://paste.ubuntu.com/738784/

- Patched with the CEA patch:
dmesg: http://paste.ubuntu.com/738786/
xorg.log: http://paste.ubuntu.com/738775/

Thanks for the great work!!!  Would be awesome if somehow this could sneak
into the final 3.2. If not, users won't be using this unti Ubuntu 12.11 !
In one year.

Just as a sidenote: There is fully Xorg issue I think. Independently from
this patch. Xorg makes some strange DDC cheked modelines, where the
modeline is correct, but it does not contain the refresh rate, It is just
zeroed out. Is it normal ?

[    13.456] (II) Quirked EDID physical size to 0x0 cm
[    13.456] (II) intel(0): EDID vendor "ONK", prod id 2147
[    13.456] (II) intel(0): Using hsync ranges from config file
[    13.456] (II) intel(0): Using vrefresh ranges from config file
[    13.456] (II) intel(0): Printing DDC gathered Modelines:
[    13.456] (II) intel(0): Modeline "1920x1080"x0.0  148.50  1920
2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz)
[    13.456] (II) intel(0): Modeline "1280x720"x0.0   74.25  1280 1390
1430 1650  720 725 730 750 +hsync +vsync (45.0 kHz)
[    13.456] (II) intel(0): Modeline "1280x720"x0.0   74.25  1280 1720
1760 1980  720 725 730 750 +hsync +vsync (37.5 kHz)
[    13.456] (II) intel(0): Modeline "1920x1080i"x0.0   74.25  1920
2008 2052 2200  1080 1084 1094 1125 interlace +hsync +vsync (33.8 kHz)
[    13.456] (II) intel(0): Modeline "1920x1080i"x0.0   74.25  1920
2448 2492 2640  1080 1084 1094 1125 interlace +hsync +vsync (28.1 kHz)
[    13.456] (II) intel(0): Modeline "640x480"x0.0   25.18  640 656
752 800  480 490 492 525 -hsync -vsync (31.5 kHz)
[    13.456] (II) intel(0): Modeline "720x576"x0.0   27.00  720 732
796 864  576 581 586 625 -hsync -vsync (31.2 kHz)
[    13.456] (II) intel(0): Modeline "1920x1080"x0.0   74.25  1920
2558 2602 2750  1080 1084 1089 1125 +hsync +vsync (27.0 kHz)
[    13.456] (II) intel(0): Modeline "1440x480i"x0.0   27.00  1440
1478 1602 1716  480 488 494 525 interlace -hsync -vsync (15.7 kHz)
[    13.456] (II) intel(0): Modeline "1440x576i"x0.0   27.00  1440
1464 1590 1728  576 580 586 625 interlace -hsync -vsync (15.6 kHz)
[    13.456] (II) intel(0): Modeline "1920x1080"x0.0   74.25  1920
2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (28.1 kHz)
[    13.456] (II) intel(0): Modeline "1920x1080"x0.0   74.25  1920
2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (33.8 kHz)
[    13.456] (II) intel(0): Modeline "2880x480"x0.0  108.00  2880 2944
3192 3432  480 489 495 525 -hsync -vsync (31.5 kHz)
[    13.456] (II) intel(0): Modeline "1920x1080"x0.0  148.50  1920
2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (56.2 kHz)
[    13.456] (II) intel(0): Modeline "2880x576"x0.0  108.00  2880 2928
3184 3456  576 581 586 625 -hsync -vsync (31.2 kHz)
[    13.456] (II) intel(0): Modeline "1920x1080i"x0.0   72.00  1920
1952 2120 2304  1080 1126 1136 1250 interlace +hsync -vsync (31.2 kHz)



2011/11/14 Adam Jackson <ajax at redhat.com>

> On Sun, 2011-11-13 at 01:31 +0100, Christian Schmidt wrote:
> > TFT/plasma televisions and projectors have become commonplace, and so
> > has the use of PCs to drive them. Add the video modes specified by an
> > EDID's CEA extension to the mode database for a connector.
>
> Thanks for finishing this up.  The mode list was indeed mechanically
> generated (pdf2text on the spec and then some python to bash it all
> together).  It's probably worth noting in the comment that it's from
> CEA-861-D, as I suspect subsequent revisions have added more timings (I
> haven't bought it yet to check).
>
> Reviewed-by: Adam Jackson <ajax at redhat.com>
>
> - ajax
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20111115/9b383d54/attachment.htm>


More information about the dri-devel mailing list