On Mon, Dec 10, 2012 at 5:44 PM, Jesse Barnes <jbarnes at virtuousgeek.org> wrote: > On Mon, 10 Dec 2012 17:03:05 -0500 > Jonathan Ph?nix <greaterd at gmail.com> wrote: > >> Hi, >> >> on my machine, I have 2 monitors attached, they are seen as HMDI >> connectors by the software. The 1st monitor is connected using a DVI-D >> cable while the second one uses the HDMI port of the machine and >> connects to the monitor using a DVI-D connector. I want to use the >> frame buffer only on the first monitor while the machine is initially >> booting and then use both monitors while Xorg is running. >> >> As mentioned near the end of this page: >> >> http://intellinuxgraphics.org/documentation.html >> >> it's possible to control this behavior using the kernel command line. >> I want to force the resolution of the first monitor to 1024x768 while >> the second monitor is disabled. I used the following to do it: >> >> video=HDMI-A-1:1024x768 video=HDMI-A-2:d >> >> It's almost working, the second monitor goes black as expected and the >> first one switch to 1024x768. >> >> The first problem with that configuration, is that every 10 seconds, >> the first monitor will go black for 3 seconds. If I remove >> "video=HDMI-A-2:d" or the second monitor is physically not attached, I >> don't have this problem. If I add "drm.debug=0x04" to the kernel >> command line, each time the first monitor goes black, I get the >> following debugging output in 'dmesg': > > This sounds like bogus polling. I think Daniel has fixed this in the > -queued branch, but you can use drm_kms_helper.poll=0 on your boot line > to avoid it. Thanks for the quick feedback, I confirm that "drm_kms_helper.poll=0" is a proper workaround for this issue on my setup. >> Additionally, the second monitor fails to be enabled properly in Xorg >> when it was disabled in frame buffer mode, even if I use: >> >> Option "Enable" "true" >> >> in the right monitor section as documented at: >> >> http://intellinuxgraphics.org/dualhead.html >> >> This is the monitor information for in "Xorg.log" when it is working properly: >> >> --- >> [ 76.352] (II) intel(0): Printing probed modes for output HDMI2 >> [ 76.352] (II) intel(0): Modeline "1360x768"x59.8 84.75 1366 >> 1431 1567 1776 768 771 781 798 -hsync +vsync (47.7 kHz UP) >> [ 76.352] (II) intel(0): Modeline "1680x1050"x60.0 146.25 1680 >> 1960 2136 2240 1050 1053 1059 1089 -hsync +vsync (65.3 kHz eP) >> [ 76.352] (II) intel(0): Modeline "1920x1200"x60.0 154.00 1920 >> 1968 2000 2080 1200 1203 1209 1235 +hsync -vsync (74.0 kHz e) >> [ 76.352] (II) intel(0): Modeline "1600x1200"x60.0 162.00 1600 >> 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync (75.0 kHz e) >> [ 76.352] (II) intel(0): Modeline "1280x1024"x75.0 135.00 1280 >> 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync (80.0 kHz e) >> [ 76.352] (II) intel(0): Modeline "1280x1024"x60.0 108.00 1280 >> 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync (64.0 kHz e) >> [ 76.352] (II) intel(0): Modeline "1440x900"x59.9 106.50 1440 >> 1520 1672 1904 900 903 909 934 -hsync +vsync (55.9 kHz e) >> [ 76.352] (II) intel(0): Modeline "1280x960"x60.0 108.00 1280 >> 1376 1488 1800 960 961 964 1000 +hsync +vsync (60.0 kHz e) >> [ 76.352] (II) intel(0): Modeline "1280x800"x59.8 83.50 1280 >> 1352 1480 1680 800 803 809 831 +hsync -vsync (49.7 kHz e) >> [ 76.352] (II) intel(0): Modeline "1152x864"x75.0 108.00 1152 >> 1216 1344 1600 864 865 868 900 +hsync +vsync (67.5 kHz e) >> [ 76.352] (II) intel(0): Modeline "1024x768"x75.1 78.80 1024 >> 1040 1136 1312 768 769 772 800 +hsync +vsync (60.1 kHz e) >> [ 76.352] (II) intel(0): Modeline "1024x768"x70.1 75.00 1024 >> 1048 1184 1328 768 771 777 806 -hsync -vsync (56.5 kHz e) >> [ 76.352] (II) intel(0): Modeline "1024x768"x60.0 65.00 1024 >> 1048 1184 1344 768 771 777 806 -hsync -vsync (48.4 kHz e) >> [ 76.352] (II) intel(0): Modeline "1024x768"x87.0 44.90 1024 >> 1032 1208 1264 768 768 776 817 interlace +hsync +vsync (35.5 kHz e) >> [ 76.352] (II) intel(0): Modeline "800x600"x72.2 50.00 800 856 >> 976 1040 600 637 643 666 +hsync +vsync (48.1 kHz e) >> [ 76.352] (II) intel(0): Modeline "800x600"x75.0 49.50 800 816 >> 896 1056 600 601 604 625 +hsync +vsync (46.9 kHz e) >> [ 76.352] (II) intel(0): Modeline "800x600"x60.3 40.00 800 840 >> 968 1056 600 601 605 628 +hsync +vsync (37.9 kHz e) >> [ 76.352] (II) intel(0): Modeline "800x600"x56.2 36.00 800 824 >> 896 1024 600 601 603 625 +hsync +vsync (35.2 kHz e) >> [ 76.352] (II) intel(0): Modeline "640x480"x72.8 31.50 640 664 >> 704 832 480 489 491 520 -hsync -vsync (37.9 kHz e) >> [ 76.352] (II) intel(0): Modeline "640x480"x75.0 31.50 640 656 >> 720 840 480 481 484 500 -hsync -vsync (37.5 kHz e) >> [ 76.352] (II) intel(0): Modeline "640x480"x66.7 30.24 640 704 >> 768 864 480 483 486 525 -hsync -vsync (35.0 kHz e) >> [ 76.352] (II) intel(0): Modeline "640x480"x60.0 25.20 640 656 >> 752 800 480 490 492 525 -hsync -vsync (31.5 kHz e) >> [ 76.352] (II) intel(0): Modeline "720x400"x70.1 28.32 720 738 >> 846 900 400 412 414 449 -hsync +vsync (31.5 kHz e) >> [ 76.378] (II) intel(0): EDID for output DP2 >> [ 76.378] (II) intel(0): Output VGA1 disconnected >> [ 76.378] (II) intel(0): Output HDMI1 connected >> [ 76.378] (II) intel(0): Output DP1 disconnected >> [ 76.378] (II) intel(0): Output HDMI2 enabled by config file >> [ 76.378] (II) intel(0): Output DP2 disconnected >> [ 76.378] (II) intel(0): Using user preference for initial modes >> [ 76.378] (II) intel(0): Output HDMI1 using initial mode 1366x768 >> [ 76.378] (II) intel(0): Output HDMI2 using initial mode 1360x768 >> --- >> >> And when it's not as a side effect of being disabled in frame buffer mode: >> >> --- >> [ 229.480] (II) intel(0): Printing probed modes for output HDMI2 >> [ 229.480] (II) intel(0): Modeline "1024x768"x60.0 65.00 1024 >> 1048 1184 1344 768 771 777 806 -hsync -vsync (48.4 kHz d) >> [ 229.480] (II) intel(0): Modeline "800x600"x60.3 40.00 800 840 >> 968 1056 600 601 605 628 +hsync +vsync (37.9 kHz d) >> [ 229.480] (II) intel(0): Modeline "640x480"x59.9 25.18 640 656 >> 752 800 480 490 492 525 -hsync -vsync (31.5 kHz d) >> [ 229.505] (II) intel(0): EDID for output DP2 >> [ 229.505] (II) intel(0): Output VGA1 disconnected >> [ 229.505] (II) intel(0): Output HDMI1 connected >> [ 229.505] (II) intel(0): Output DP1 disconnected >> [ 229.505] (II) intel(0): Output HDMI2 enabled by config file >> [ 229.505] (II) intel(0): Output DP2 disconnected >> [ 229.505] (II) intel(0): Using user preference for initial modes >> [ 229.505] (II) intel(0): Output HDMI1 using initial mode 1366x768 >> [ 229.505] (II) intel(0): Output HDMI2 using initial mode 1024x768 >> --- >> >> I suspect in this case that the second monitor fails to enumerate all >> the supported modes for a reason I can't identify. >> >> I am using a software stack that is very close to the one proposed at: >> >> http://intellinuxgraphics.org/2012.07.html >> >> built from source for a x86_64 architecture using Sandybridge chipset. >> I also tried with the current stable kernel (3.6.9), same problem. Any >> ideas what could be the problem(s)? > > Yeah the video= param will force detection to fail for outputs set as > 'd' on the boot line. Sounds like we might need another option that > will let you disable it just for the fbcon and not generally. Is there a way from user land (sysfs, procfs, custom DRM API, etc...) to revert the disabling? Otherwise, could a quick hack in the kernel could be devised? A pointer to the right functions in the kernel would be a good starting point. Thanks, - Jonathan Ph?nix > > -- > Jesse Barnes, Intel Open Source Technology Center