Bug 51412

Summary: Display not showing anything after turning it on with randr
Product: DRI Reporter: Jaroslav Šmíd <jardasmid>
Component: DRM/IntelAssignee: Daniel Vetter <daniel>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: medium CC: ben, chris, daniel, jbarnes
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
1. randr --verbose, HDMI output on
none
2. randr --verbose, LVDS turned on, HDMI off
none
3. xrandr --verbose, after switching VTs
none
4. randr --verbose, LVDS turned off, HDMI on
none
dmesg output with drm.debug=6 none

Description Jaroslav Šmíd 2012-06-25 08:20:21 UTC
After switching my displays few times (internal and one external connected over HDMI), my displays start not showing anything after being turned on by xrandr. I have to switch to another virtual terminal and then back so they start showing output again. Looking at xrandr --verbose output after the output switch and then again after switching VTs I see this difference for LVDS1:

From xrandr --verbose right after the switch:
BACKLIGHT: 0 (0x00000000)	range:  (0,255000)
Backlight: 0 (0x00000000)	range:  (0,255000)

From xrandr --verbose after switching VTs:
BACKLIGHT: 255000 (0x0003e418)  range:  (0,255000)
Backlight: 255000 (0x0003e418)  range:  (0,255000)

But I can't see any difference in output when looking at HDMI1, but the monitor shows "No signal" until I switch the VTs.

Here is what I did, logs attached for each step:

1. Original state, only HDMI output is active (randr --verbose)
2. LVDS turned on, HDMI off (xrandr -s 1280x800 --output HDMI1 --off --output LVDS1 --auto && sleep 2 && randr --verbose)
3. I switch to console and back, output turns on (as it ought to in step 2), then I run randr --verbose
4. LVDS turned off, HDMI turned on (xrandr -s 1280x1024 --output HDMI1 --auto --output LVDS1 --off && sleep 2 && xrandr --verbose)
Comment 1 Jaroslav Šmíd 2012-06-25 08:21:57 UTC
Created attachment 63453 [details]
1. randr --verbose, HDMI output on
Comment 2 Jaroslav Šmíd 2012-06-25 08:22:36 UTC
Created attachment 63454 [details]
2. randr --verbose, LVDS turned on, HDMI off
Comment 3 Jaroslav Šmíd 2012-06-25 08:23:12 UTC
Created attachment 63455 [details]
3. xrandr --verbose, after switching VTs
Comment 4 Jaroslav Šmíd 2012-06-25 08:24:06 UTC
Created attachment 63456 [details]
4. randr --verbose, LVDS turned off, HDMI on
Comment 5 Jaroslav Šmíd 2012-06-25 08:28:16 UTC
Some info about HW and package versions

Video card: Intel X3100.

xorg-server 1.12.2
xf86-video-intel 2.19.0
intel-dri 8.0.3
Comment 6 Chris Wilson 2012-06-25 14:57:39 UTC
You're not using SNA by any chance? Since I've just pushed the workaround from UXA that should handle this inconsistent behaviour in the kernel.
Comment 7 Jaroslav Šmíd 2012-06-25 16:19:32 UTC
I am using UXA, I might try to compile it with SNA from git if it won't require git version of xserver, which would force me to recompile everything else because of ABI breakage.
Comment 8 Jaroslav Šmíd 2012-06-25 17:15:25 UTC
Compiled the driver with --enable-dri --disable-uxa --enable-sna=gen4 --with-default-accel=sna, but still getting the same results. It worked few times and I was thinking it could work ... but then I switched it few more times and got black screen again, this time the external monitor didn't show "No signal", I turned on, showed "Digital", but the screen remained black until I switched VTs again.
Comment 9 Chris Wilson 2012-06-29 04:51:47 UTC
Can you attach a dmesg with drm.debug=6 following the monitor signal failure?
Comment 10 Jaroslav Šmíd 2012-06-30 07:45:44 UTC
Created attachment 63643 [details]
dmesg output with drm.debug=6

Here is related dmesg output.

I had only HDMI1 enabled at first. Then I did this:

1. I activated LVDS1 output and turned off HDMI output using xrandr. LVDS1 didn't turn on/remained black.
2. Switched to VT1. HDMI output got enabled, LVDS remained black.
3. Switched from vt1 back to vt7. HDMI output got disabled, LVDS turned on.

I marked those places in the dmesg output file.
Comment 11 Jaroslav Šmíd 2012-06-30 07:54:55 UTC
BTW the log is with UXA accel method, I removed the git SNA driver. I could test also with SNA if needed.
Comment 12 Daniel Vetter 2012-08-22 10:52:16 UTC
He, maybe this is fixed by the "too early plane enable":

commit c7bd4c25650704d4d065eb4ce2a122d2a80ce804
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Apr 24 16:36:50 2012 +0100

    drm/i915: Remove too early plane enable on pre-PCH hardware

You need kernel 3.5 for this fix. Please reopen if it still doesn't work on that kernel.

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.