Bug 10666

Summary: [945GM] EDID working with BIOS emulation but failing in EFI mode
Product: xorg Reporter: Frederic Riss <frederic.riss>
Component: Driver/intelAssignee: Eric Anholt <eric>
Status: RESOLVED INVALID QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Xorg.0.log with EDID (BIOS emulation)
none
Xorg.0.log without EDID data (EFI mode) none

Description Frederic Riss 2007-04-17 13:52:26 UTC
This might be related to other reported bugs about EDID problems, but the context is sufficiently special that I report it as a separate bug. 

I'm using the same build of Xorg on my Intel MacMini both in EFI mode and in BIOS emulation mode (which people refer to as BootCamp). I'm using git master from 2007-04-17 for all components (I'm using util/modular/build.sh to build).

As the summary says, the same driver successfully uses the monitor EDID data in BIOS emulation mode, but fails in pure EFI mode, as the following xrandr quotes demonstrate:

BIOS mode:
fred@minifunky:~$ xrandr 
Screen 0: minimum 320 x 200, current 1152 x 864, maximum 1280 x 1280
VGA connected 1152x864+0+0 (normal left inverted right) 306mm x 230mm
   1280x1024      59.9  
   1280x960       59.9  
   1152x864       74.8* 
   1024x768       84.9     75.1     70.1     60.0  
   832x624        74.6  
   800x600        98.7     84.9     72.2     75.0     60.3  
   640x480        99.8     84.6     75.0     72.8     60.0  
   720x400        70.1  
   640x350        70.1  
TMDS-1 connected 1024x768+0+0 (normal left inverted right) 0mm x 0mm
   1024x768       60.0* 
   800x600        60.3  
   640x480        59.9  
TV disconnected (normal left inverted right)


EFI mode:
fred@minifunky:~$ xrandr 
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 1024 x 1024
VGA connected 1024x768+0+0 (normal left inverted right) 0mm x 0mm
   1024x768       60.0* 
   800x600        60.3  
   640x480        59.9  
TMDS-1 connected (normal left inverted right)
   1024x768       60.0  
   800x600        60.3  
   640x480        59.9  
TV disconnected (normal left inverted right)


I'll attach both Xorg.log files, I'll happily to provide any other information.
Comment 1 Frederic Riss 2007-04-17 13:55:14 UTC
Created attachment 9643 [details]
Xorg.0.log with EDID (BIOS emulation)
Comment 2 Frederic Riss 2007-04-17 13:56:00 UTC
Created attachment 9644 [details]
Xorg.0.log without EDID data (EFI  mode)
Comment 3 Frederic Riss 2007-04-27 12:07:06 UTC
Additional data point. After a suspend/resume cycle in EFI mode, the xrandr output changes:

fred@minifunky:~$ xrandr 
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 1024 x 1024
VGA connected 1024x768+0+0 (normal left inverted right) 306mm x 230mm
   1024x768       84.9     75.1     70.1     60.0* 
   832x624        74.6  
   800x600        98.7     84.9     72.2     75.0     60.3  
   640x480        99.8     84.6     75.0     72.8     60.0  
   720x400        70.1  
   640x350        70.1  
TMDS-1 connected (normal left inverted right)
   1024x768       60.0  
   800x600        60.3  
   640x480        59.9  
TV disconnected (normal left inverted right)

More modes seem to be detected, but not all the available modes are displayed. And indeed, at the end of xorg.conf I find:

(II) intel(0): Output VGA connected
(II) intel(0): I2C device "CRTDDC_A:ddc2" registered at address 0xA0.
(II) intel(0): I2C device "CRTDDC_A:ddc2" removed.
(II) intel(0): EDID vendor "PHL", prod id 30476
(II) intel(0): Using EDID range info for horizontal sync
(II) intel(0): Using EDID range info for vertical refresh
(II) intel(0): Printing DDC gathered Modelines:
(II) intel(0): Modeline "640x350"x0.0   25.18  640 656 752 800  350 387 389 449 -hsync +vsync (31.5 kHz)
(II) intel(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz)
(II) intel(0): Modeline "640x480"x0.0   31.50  640 656 720 840  480 481 484 500 -hsync -vsync (37.5 kHz)
(II) intel(0): Modeline "640x480"x0.0   31.50  640 664 704 832  480 489 491 520 -hsync -vsync (37.9 kHz)
(II) intel(0): Modeline "640x480"x0.0   25.20  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz)
(II) intel(0): Modeline "720x400"x0.0   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz)
(II) intel(0): Modeline "1024x768"x0.0   78.80  1024 1040 1136 1312  768 769 772 800 +hsync +vsync (60.1 kHz)
(II) intel(0): Modeline "1024x768"x0.0   75.00  1024 1048 1184 1328  768 771 777 806 -hsync -vsync (56.5 kHz)
(II) intel(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz)
(II) intel(0): Modeline "832x624"x0.0   57.28  832 864 928 1152  624 625 628 667 -hsync -vsync (49.7 kHz)
(II) intel(0): Modeline "800x600"x0.0   49.50  800 816 896 1056  600 601 604 625 +hsync +vsync (46.9 kHz)
(II) intel(0): Modeline "800x600"x0.0   50.00  800 856 976 1040  600 637 643 666 +hsync +vsync (48.1 kHz)
(II) intel(0): Modeline "640x480"x84.6   35.00  640 664 728 816  480 483 487 507 -hsync +vsync (42.9 kHz)
(II) intel(0): Modeline "800x600"x84.9   56.75  800 848 928 1056  600 603 607 633 -hsync +vsync (53.7 kHz)
(II) intel(0): Modeline "1024x768"x84.9   94.50  1024 1096 1200 1376  768 771 775 809 -hsync +vsync (68.7 kHz)
(II) intel(0): Modeline "1280x1024"x59.9  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync (63.7 kHz)
(II) intel(0): Modeline "640x480"x99.8   42.50  640 672 736 832  480 483 487 512 -hsync +vsync (51.1 kHz)
(II) intel(0): Modeline "800x600"x98.7   66.50  800 848 928 1056  600 603 607 638 -hsync +vsync (63.0 kHz)
(II) intel(0): Modeline "1280x960"x59.9  101.25  1280 1360 1488 1696  960 963 967 996 -hsync +vsync (59.7 kHz)
(II) intel(0): Modeline "1152x864"x74.8  104.00  1152 1224 1344 1536  864 867 871 905 -hsync +vsync (67.7 kHz)
(II) intel(0): EDID vendor "PHL", prod id 30476
(II) intel(0): Output TMDS-1 connected
(II) intel(0): I2C device "SDVOB DDC Bus:ddc2" registered at address 0xA0.
(II) intel(0): I2C device "SDVOB DDC Bus:ddc2" removed.
(II) intel(0): Output TV disconnected
(II) intel(0): Output VGA connected
(II) intel(0): I2C device "CRTDDC_A:ddc2" registered at address 0xA0.
(II) intel(0): I2C device "CRTDDC_A:ddc2" removed.
(II) intel(0): EDID vendor "PHL", prod id 30476
(II) intel(0): Using hsync ranges from config file
(II) intel(0): Using vrefresh ranges from config file
(II) intel(0): Printing DDC gathered Modelines:
(II) intel(0): Modeline "640x350"x0.0   25.18  640 656 752 800  350 387 389 449 -hsync +vsync (31.5 kHz)
(II) intel(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz)
(II) intel(0): Modeline "640x480"x0.0   31.50  640 656 720 840  480 481 484 500 -hsync -vsync (37.5 kHz)
(II) intel(0): Modeline "640x480"x0.0   31.50  640 664 704 832  480 489 491 520 -hsync -vsync (37.9 kHz)
(II) intel(0): Modeline "640x480"x0.0   25.20  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz)
(II) intel(0): Modeline "720x400"x0.0   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz)
(II) intel(0): Modeline "1024x768"x0.0   78.80  1024 1040 1136 1312  768 769 772 800 +hsync +vsync (60.1 kHz)
(II) intel(0): Modeline "1024x768"x0.0   75.00  1024 1048 1184 1328  768 771 777 806 -hsync -vsync (56.5 kHz)
(II) intel(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz)
(II) intel(0): Modeline "832x624"x0.0   57.28  832 864 928 1152  624 625 628 667 -hsync -vsync (49.7 kHz)
(II) intel(0): Modeline "800x600"x0.0   49.50  800 816 896 1056  600 601 604 625 +hsync +vsync (46.9 kHz)
(II) intel(0): Modeline "800x600"x0.0   50.00  800 856 976 1040  600 637 643 666 +hsync +vsync (48.1 kHz)
(II) intel(0): Modeline "640x480"x84.6   35.00  640 664 728 816  480 483 487 507 -hsync +vsync (42.9 kHz)
(II) intel(0): Modeline "800x600"x84.9   56.75  800 848 928 1056  600 603 607 633 -hsync +vsync (53.7 kHz)
(II) intel(0): Modeline "1024x768"x84.9   94.50  1024 1096 1200 1376  768 771 775 809 -hsync +vsync (68.7 kHz)
(II) intel(0): Modeline "1280x1024"x59.9  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync (63.7 kHz)
(II) intel(0): Modeline "640x480"x99.8   42.50  640 672 736 832  480 483 487 512 -hsync +vsync (51.1 kHz)
(II) intel(0): Modeline "800x600"x98.7   66.50  800 848 928 1056  600 603 607 638 -hsync +vsync (63.0 kHz)
(II) intel(0): Modeline "1280x960"x59.9  101.25  1280 1360 1488 1696  960 963 967 996 -hsync +vsync (59.7 kHz)
(II) intel(0): Modeline "1152x864"x74.8  104.00  1152 1224 1344 1536  864 867 871 905 -hsync +vsync (67.7 kHz)
(II) intel(0): EDID vendor "PHL", prod id 30476
(II) intel(0): Output TMDS-1 connected
(II) intel(0): I2C device "SDVOB DDC Bus:ddc2" registered at address 0xA0.
(II) intel(0): I2C device "SDVOB DDC Bus:ddc2" removed.
(II) intel(0): Output TV disconnected

And here we see all the modes are gathered !? And if I restart the server at this point: 

fred@minifunky:~$ xrandr Screen 0: minimum 320 x 200, current 1152 x 864, maximum 1280 x 1280
VGA connected 1152x864+0+0 (normal left inverted right) 306mm x 230mm
   1280x1024      59.9  
   1280x960       59.9  
   1152x864       74.8* 
   1024x768       84.9     75.1     70.1     60.0  
   832x624        74.6  
   800x600        98.7     84.9     72.2     75.0     60.3  
   640x480        99.8     84.6     75.0     72.8     60.0  
   720x400        70.1  
   640x350        70.1  
TMDS-1 connected 1024x768+0+0 (normal left inverted right) 0mm x 0mm
   1024x768       60.0* 
   800x600        60.3  
   640x480        59.9  
TV disconnected (normal left inverted right)

I've got all the modes ! Excellent ! 

There seems to be some ordering issue between the card initialization and the DDC reading. Does this ring a bell?

[ Hmmm, I just realized that I get a big 3D performance degradation after suspend/resume... I guess I should open another bug for that ? ]
Comment 4 Michael Fu 2007-12-02 19:22:58 UTC
Hi, sorry for the late response. I'm wonderring if you can re-test this bug using the latest tip? thanks.
Comment 5 Gordon Jin 2008-01-02 18:10:06 UTC
feedback timed out. Please reopen if you can reproduce with the latest driver.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.