[arrandale] Black screen on login regression (oneiric->precise) with external displayport monitor

Bug #912387 reported by Roland Dreier
28
This bug affects 4 people
Affects Status Importance Assigned to Milestone
xf86-video-intel
Confirmed
High
linux (Ubuntu)
Fix Released
High
Unassigned

Bug Description

I have a Lenovo t410s laptop (Arrandale graphics) that I use with a docking station that is connected to an external monitor via displayport. I just updated from Oneiric to the latest Precise daily, and I've seen big regressions using this setup. I went into the display control panel and set my monitors to be non-mirrored and set my DP monitor to its native (2560x1440) resolution.

Now, after a cold reboot, the login screen comes up fine (in its bad fallback resolution -- this I think is a known lightdm issue, where a laptop+external monitor ends up with lightdm using some non-native resolution). But then when I log in, X tries to change the mode of the DP monitor to the correct one, and at that point the monitor just goes black. If I do alt-f1 I can get back to a text console, but alt-f7 just goes back to the black screen.

I am able to open my laptop and bring up the LVDS1 output, but I have not been able to figure out how to light up the DP output.

Oneiric was able to handle this pretty well -- if I booted docked, the external monitor was used at its native resolution, and if I booted undocked the internal LVDS was used at its native resolution. And even suspend/resume and docking/undocking usually worked.

I see messages like:

[ 382.963872] [drm:intel_dp_complete_link_train] *ERROR* failed to train DP, aborting

in the kernel log, which are presumably related to the failure to light up the DP monitor.

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: xserver-xorg-video-intel 2:2.15.901-1ubuntu4
ProcVersionSignature: Ubuntu 3.2.0-7.13-generic 3.2.0-rc7
Uname: Linux 3.2.0-7-generic x86_64
.tmp.unity.support.test.0:

ApportVersion: 1.90-0ubuntu1
Architecture: amd64
CompizPlugins: [core,bailer,detection,composite,opengl,compiztoolbox,decor,resize,gnomecompat,grid,move,snap,vpswitch,place,regex,session,imgpng,mousepoll,animation,wall,expo,unitymtgrabhandles,fade,workarounds,scale,ezoom,unityshell]
CompositorRunning: compiz
Date: Thu Jan 5 08:55:36 2012
DistUpgraded: Fresh install
DistroCodename: precise
DistroVariant: ubuntu
EcryptfsInUse: Yes
ExtraDebuggingInterest: Yes, whatever it takes to get this fixed in Ubuntu
GraphicsCard:
 Intel Corporation Core Processor Integrated Graphics Controller [8086:0046] (rev 02) (prog-if 00 [VGA controller])
   Subsystem: Lenovo Device [17aa:21c1]
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Alpha amd64 (20120104)
MachineType: LENOVO 2901CTO
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.2.0-7-generic root=UUID=677292b2-a7ba-4d9e-8f1a-662c546b62ce ro intel_iommu=igfx_off quiet splash vt.handoff=7
SourcePackage: xserver-xorg-video-intel
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 10/27/2010
dmi.bios.vendor: LENOVO
dmi.bios.version: 6UET61WW (1.41 )
dmi.board.name: 2901CTO
dmi.board.vendor: LENOVO
dmi.board.version: Not Available
dmi.chassis.asset.tag: No Asset Information
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: Not Available
dmi.modalias: dmi:bvnLENOVO:bvr6UET61WW(1.41):bd10/27/2010:svnLENOVO:pn2901CTO:pvrThinkPadT410s:rvnLENOVO:rn2901CTO:rvrNotAvailable:cvnLENOVO:ct10:cvrNotAvailable:
dmi.product.name: 2901CTO
dmi.product.version: ThinkPad T410s
dmi.sys.vendor: LENOVO
version.compiz: compiz 1:0.9.6+bzr20110929-0ubuntu8
version.ia32-libs: ia32-libs N/A
version.libdrm2: libdrm2 2.4.29-1ubuntu1
version.libgl1-mesa-dri: libgl1-mesa-dri 7.11-0ubuntu4
version.libgl1-mesa-dri-experimental: libgl1-mesa-dri-experimental N/A
version.libgl1-mesa-glx: libgl1-mesa-glx 7.11-0ubuntu4
version.xserver-xorg-core: xserver-xorg-core 2:1.10.4-1ubuntu6
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:2.6.0-1ubuntu13
version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:6.14.99~git20110811.g93fc084-0ubuntu1
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.15.901-1ubuntu4
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau 1:0.0.16+git20111201+b5534a1-1

CVE References

Revision history for this message
Roland Dreier (roland.dreier) wrote :
Revision history for this message
Roland Dreier (roland.dreier) wrote :

Actually, just went into the display control panel and I am able to get the external monitor to light up now at 1024x768, but native 2560x1440 still fails.

Note that sometimes I am able to get the external monitor working at the native resolution with precise -- but I don't know what the difference between the working and non-working sessions is.

Revision history for this message
Roland Dreier (roland.dreier) wrote :

OK, going into the display settings control panel and making sure the laptop LVDS is _off_ and the DP is at native resolution worked. But if I reboot there is a good chance the DP monitor won't come up and I'll have to go through the whole dance of going to the console, running "DISPLAY=:0 xrandr --output LVDS1 --auto", using the laptop screen to run the monitor control panel, and transitioning back to using the DP monitor.

Revision history for this message
Roland Dreier (roland.dreier) wrote :

Also I see messages like

[ 5098.944951] [drm:drm_mode_getfb] *ERROR* invalid framebuffer id

which seem correlated as well.

Revision history for this message
Bryce Harrington (bryce) wrote :

The lightdm resolution issue is probably bug #874241.

The blank screen after the modeswitch with DP sounds like in some situations it's bring up the external monitor on a different CRTC than the one X is sending graphics to.

Please enable modesetting debug messages. Run 'sudo xdiagnose', it's the first checkbox. Click Apply, wait for it to rebuild the bootloader, then reboot and reproduce the bug. Then switch to a vt or ssh into the box and collect 'sudo dmesg > dmesg.txt' and attach that here. This will give more details about how it's selecting modes and crtcs during the modeswitch.

Fwiw, upstream has recently been doing some work on sorting out some DP problems. We'll be updating the X stack hopefully in the next week or two, which may bring in some of those fixes. We have the stack in a staging PPA you could try if you're interested in testing it.

Revision history for this message
Roland Dreier (roland.dreier) wrote :

So xdiagnose doesn't work for me (I seem to hit bug #903484) but I added "drm.debug=0xe" to my kernel command line by hand, and got the following output.

This is not exactly the scenario described above -- I actually booted up at home away from my dock, suspended the laptop, came to work, and resumed in the dock. I had exactly the same situation that my external monitor wouldn't light up though, and I went through my (now-standard) workaround dance of:
 - log into text kernel and do xrandr --output LVDS1 --auto to turn on the laptop screen
 - light up the DP monitor at 1024x768
 - switch the DP monitor to 2560x1440 at the same time as I turn off the laptop screen

and I now have my X session working at native resolution on my external monitor.

Revision history for this message
Roland Dreier (roland.dreier) wrote :

OK, here's a kernel log of me booting up and then going through the dance to get my DP monitor lit up at the right resolution.

Revision history for this message
Roland Dreier (roland.dreier) wrote :

OK, here's a kernel log of me booting up and then going through the dance to get my DP monitor lit up at the right resolution.

Revision history for this message
Roland Dreier (roland.dreier) wrote :

OK, here's a kernel log of me booting up and then going through the dance to get my DP monitor lit up at the right resolution.

Bryce Harrington (bryce)
summary: - Intel graphics stack regression (oneiric->precise) with external
- displayport monitor
+ [arrandale] regression (oneiric->precise) with external displayport
+ monitor
summary: - [arrandale] regression (oneiric->precise) with external displayport
- monitor
+ [arrandale] Black screen on login regression (oneiric->precise) with
+ external displayport monitor
Revision history for this message
In , Bryce Harrington (bryce) wrote :
Download full text (4.3 KiB)

Forwarding this bug from Ubuntu reporter Roland Dreier:
http://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/912387

[Problem]
Currently, the login screen is set to mirrored (at a lower resolution). On login, the system reconfigures the displays to their native resolutions, but the external DP monitor just shows black.

The kernel log shows:
[ 382.963872] [drm:intel_dp_complete_link_train] *ERROR* failed to train DP, aborting

[Original Description]
I have a Lenovo t410s laptop (Arrandale graphics) that I use with a docking station that is connected to an external monitor via displayport. I just updated from Oneiric to the latest Precise daily, and I've seen big regressions using this setup. I went into the display control panel and set my monitors to be non-mirrored and set my DP monitor to its native (2560x1440) resolution.

Now, after a cold reboot, the login screen comes up fine (in its bad fallback resolution -- this I think is a known lightdm issue, where a laptop+external monitor ends up with lightdm using some non-native resolution). But then when I log in, X tries to change the mode of the DP monitor to the correct one, and at that point the monitor just goes black. If I do alt-f1 I can get back to a text console, but alt-f7 just goes back to the black screen.

I am able to open my laptop and bring up the LVDS1 output, but I have not been able to figure out how to light up the DP output.

Oneiric was able to handle this pretty well -- if I booted docked, the external monitor was used at its native resolution, and if I booted undocked the internal LVDS was used at its native resolution. And even suspend/resume and docking/undocking usually worked.

I see messages like:

[ 382.963872] [drm:intel_dp_complete_link_train] *ERROR* failed to train DP, aborting

in the kernel log, which are presumably related to the failure to light up the DP monitor.

DistroRelease: Ubuntu 12.04
Package: xserver-xorg-video-intel 2:2.15.901-1ubuntu4
ProcVersionSignature: Ubuntu 3.2.0-7.13-generic 3.2.0-rc7
Uname: Linux 3.2.0-7-generic x86_64
.tmp.unity.support.test.0:

ApportVersion: 1.90-0ubuntu1
Architecture: amd64
CompizPlugins: [core,bailer,detection,composite,opengl,compiztoolbox,decor,resize,gnomecompat,grid,move,snap,vpswitch,place,regex,session,imgpng,mousepoll,animation,wall,expo,unitymtgrabhandles,fade,workarounds,scale,ezoom,unityshell]
CompositorRunning: compiz
Date: Thu Jan 5 08:55:36 2012
DistUpgraded: Fresh install
DistroCodename: precise
DistroVariant: ubuntu
EcryptfsInUse: Yes
ExtraDebuggingInterest: Yes, whatever it takes to get this fixed in Ubuntu
GraphicsCard:
 Intel Corporation Core Processor Integrated Graphics Controller [8086:0046] (rev 02) (prog-if 00 [VGA controller])
   Subsystem: Lenovo Device [17aa:21c1]
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Alpha amd64 (20120104)
MachineType: LENOVO 2901CTO
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.2.0-7-generic root=UUID=677292b2-a7ba-4d9e-8f1a-662c546b62ce ro intel_iommu=igfx_off quiet splash vt.handoff=7
SourcePackage: xserver-xorg-video-intel
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 10/27/2010
dmi.bios...

Read more...

Revision history for this message
In , Bryce Harrington (bryce) wrote :

Created attachment 55714
drm-dmesg.txt

I added "drm.debug=0xe" to my kernel command line by hand, and got the following output.

This is not exactly the scenario described above -- I actually booted up at home away from my dock, suspended the laptop, came to work, and resumed in the dock. I had exactly the same situation that my external monitor wouldn't light up though, and I went through my (now-standard) workaround dance of:
 - log into text kernel and do xrandr --output LVDS1 --auto to turn on the laptop screen
 - light up the DP monitor at 1024x768
 - switch the DP monitor to 2560x1440 at the same time as I turn off the laptop screen

and I now have my X session working at native resolution on my external monitor.

Revision history for this message
In , Bryce Harrington (bryce) wrote :

Created attachment 55715
graphics-dp3-trace.txt

OK, here's a kernel log of me booting up and then going through the dance to get my DP monitor lit up at the right resolution.

Changed in xserver-xorg-video-intel (Ubuntu):
importance: Undecided → High
Revision history for this message
Bryce Harrington (bryce) wrote :

Roland Dreier - I've forwarded this bug upstream to https://bugs.freedesktop.org/show_bug.cgi?id=44881 - please subscribe yourself to this bug, in case they need further information or wish you to test something. Thanks ahead of time!

Changed in xserver-xorg-video-intel (Ubuntu):
status: New → Triaged
Changed in xserver-xorg-video-intel:
importance: Unknown → High
status: Unknown → Confirmed
Revision history for this message
In , Daniel-ffwll (daniel-ffwll) wrote :

Created attachment 56176
fixup dp bpc calculations

Can you please try this patch?

Revision history for this message
In , Leann Ogasawara (leannogasawara) wrote :

Hi Roland,

I've taken the patch suggested by Daniel in comment 3 and built an Ubuntu Precise test kernel. If you could please test and let Daniel know your results that would be very much appreciated. Thanks in advance.

http://people.canonical.com/~ogasawara/fdo44881/amd64/cmt3/

Revision history for this message
In , Roland Dreier (roland.dreier) wrote :

Thanks Leann. I'm running:

$ uname -a
Linux roland-t410s 3.2.0-13-generic #22+fdo44881v1 SMP Fri Feb 3 05:42:29 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

and I can confirm that the problem appears to be resolved. I rebooted with my DP monitor connected, logged in, and came up in the native resolution perfectly. This never worked with the stock precise kernel.

Revision history for this message
Bryce Harrington (bryce) wrote :

Verified fix from upstream bug report.

affects: xserver-xorg-video-intel (Ubuntu) → linux (Ubuntu)
tags: added: kernel-handoff-graphics
Revision history for this message
Bryce Harrington (bryce) wrote :

Debs with the fix are at http://people.canonical.com/~ogasawara/fdo44881/amd64/cmt3/

Moving to kernel for further processing, now that there is a fix found.

tags: added: patch
Revision history for this message
Tamas Papp (tompos) wrote :

I also can confirm it. I have HP 2540p.

But after some cycle I got kernel panic after a wake up. I don't know, it's releated to this or an other issue. Next time I try to make a more correct report.

tamas

Revision history for this message
Leann Ogasawara (leannogasawara) wrote :

It looks like the patch to resolve this bug has been applied to the git://git.kernel.org/pub/scm/linux/kernel/git/keithp/linux.git drm-intel-fixes branch. I've therefore cherry-picked this from there prior to it officially having landed in mainline. This should be fixed in Precise after the next upload. Thanks.

Changed in linux (Ubuntu):
status: Triaged → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux - 3.2.0-16.25

---------------
linux (3.2.0-16.25) precise; urgency=low

  [ Andy Whitcroft ]

  * d-i -- include the Hyper-V drivers in the virtio udeb
    - LP: #917135

  [ Felix Fietkau ]

  * (pre-stable): ath9k_hw: fix a RTS/CTS timeout regression
    - LP: #925602

  [ Keith Packard ]

  * SAUCE: drm/i915: Force explicit bpp selection for
    intel_dp_link_required
    - LP: #745112, #912387, #917330

  [ Leann Ogasawara ]

  * Fix typo in generic-pae description
    - LP: #928448
  * Rebase to v3.2.6

  [ Upstream Kernel Changes ]

  * procfs: parse mount options
    - CVE-2011-4917
  * procfs: add hidepid= and gid= mount options
    - CVE-2011-4917
  * proc: fix null pointer deref in proc_pid_permission()
    - CVE-2011-4917
  * xhci: Remove warnings about MSI and MSI-X capabilities.
    - LP: #929656
  * xhci: Remove scary warnings about transfer issues.
    - LP: #929656
  * x86, mce, therm_throt: Don't report power limit and package level
    thermal throttle events in mcelog
    - LP: #930288
  * rebase to v3.2.6
    - LP: #924320
    - LP: #918254
 -- Leann Ogasawara <email address hidden> Mon, 13 Feb 2012 13:00:08 -0800

Changed in linux (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
In , W-florijn-k (w-florijn-k) wrote :

A patch referencing this bug report has been merged in Linux v3.3-rc4:

commit c898261c0dad617f0f1080bedc02d507a2fcfb92
Author: Keith Packard <email address hidden>
Date: Wed Jan 25 08:16:25 2012 -0800

    drm/i915: Force explicit bpp selection for intel_dp_link_required

Revision history for this message
Thiago Henrique Santos (thenriques45) wrote :

I'm having a similar problem with my Dell Inspiron 1545 (Intel Mobile Graphics GM45).

It show the login screen and mirror the notebook screen and the external monitor. If I set the mirroring off and maximum resolution to bough screens (notebook screen: 1355x768, external monitor: 1600x900) bougth screens goes black and altough the mouse pointer is still visible, it can't be moved.

I get back to Ubuntu 11.10, but can reproduce the bug with the live USB stick version.

How can I help to give more information about the bug?

Thanks.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.