video problems with Thinkpad T420s integrated intel graphics

Bug #812638 reported by David Smith on 2011-07-19
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Fix Released
linux (Ubuntu)
Jose Plans

Bug Description

The framebuffer is corrupted during boot, resulting in a 2/3 black and 1/3 pinstripe pattern on the display (photo attached). This occurs with either a stock natty installation or with linux-lts-backport-natty on lucid. The oneric backport kernel from ubuntu-lucid git (tag Ubuntu-lts-3.0.0-5.6) works error free.

There are three issues that need to be addressed:

  1. The framebuffer corruption problem that is unrecoverable. The system is functional and I can login blind. Using git-bisect, I am lead to believe this is fixed in b24e71798871089da1a4ab049db2800afc1aac0c (drm/i915: add pipe/plane enable/disable functions).
  2. With the patch from 1 applied, the gdm login screen still doesn't draw properly (no greeter), but I can still login blind and, on lucid, gnome comes up normally and everything is drawn correctly. I believe this is fixed in fe4402931e43e81a4129eba41d05cf8907603af5 (Merge branch 'drm-intel-fixes' into drm-intel-next).
  3. With the patches from 1 and 2 applied, the machine does not correctly resume from C3 suspend (default lid-close action). Keyboard is unresponsive. I have not identified what patch fixes this but it does not present in Ubuntu-lts-3.0.0-5.6.

David Smith (dds) wrote :
summary: - video problems with thinkpad 420s integrated intel graphics
+ video problems with Thinkpad T420s integrated intel graphics
Chris Van Hoof (vanhoof) on 2011-07-20
Changed in linux-lts-backport-natty (Ubuntu):
assignee: nobody → Chris Van Hoof (vanhoof)
importance: Undecided → Medium
status: New → Triaged
Chris Van Hoof (vanhoof) wrote :

David -- What lts-backport-natty kernel were you testing at the time of filing this bug? 2.6.38-10.46~lucid1 was released yesterday, which may of of benefit to test.

This does sound quite similar to Bug #761065, where a fix has landed in -stable, and is now applied to the current natty -proposed kernel (2.6.38-11).

... booting with i915.semaphores=1 as a kernel option on builds <= 2.6.38-10 should work around this issue, which would certainly be a great datapoint.


David Smith (dds) wrote :

Hi Chris, I was testing with the lts-backport-natty 2.6.38-10.44~lucid1 and then 2.6.38-10.46 and 3.0.0-5.6 tags built from the ubuntu-lucid.git tree. I've now reinstalled the test machine with natty and the results are the same with the default 2.6.38-10.46 package. And no change when trying 2.6.38-9.43 from natty-proposed with or without i915.semaphores=1. I cannot find a 2.6.38-11 natty proposed kernel.

David Smith (dds) wrote :

Also during testing I noticed that if I suspend and resume the machine on any of the 2.6.38 kernels, the framebuffer is reset on resume and things work normally. Maybe that helps associate this to some other existing bug?

David Smith (dds) wrote :

Found the 2.6.38-11 proposed kernel from Booting with i915.semaphores=1 seems to work without any visual problems, though on shutdown, it seems to be showing plymouth drawing on top of the fb console. Without i915.semaphores=0, the results have been a black part of the screen taking up either the right 1/3, the center 1/3, the whole screen (maybe more combinations but I stopped trying).

David Smith (dds) wrote :

I spoke too soon. Retrying the 2.6.38-11 proposed kernel with i915.semaphores=1 continues to result in visual corruption, similar to i1915.semaphores=0. Apparently random.

David Smith (dds) wrote :

Any updates?

John Bender (johnbender) wrote :

I'm having similar problems with my t420s with the intel integrated video, though it only happens when I attempt to connect an external monitor. The failure is intermittent and suspend/resume seems to clear up the issue ( reloading the module? ). Vague steps to reproduce:

1. Plug in external monitor to vga port
2. Wait for screen flash
3. Laptop monitor has abnormal screen ratio
4. Reset resolutions to recommended for both (1920x1200 and 1600x900) in gnome-display-settings
5. Fully blank or partially blank screen on the laptop while the external continues to work

Please let me know if there's anything you'd like me to try on my machine or information that would be useful for this type of post ( lspci/dmesg output) and apologies for the lack of detail. I'll try updating the kernel from the canonical teams ppa to see if I have any results.

John Bender (johnbender) wrote :

I should note at least two more things:

1. I am running Natty, not using the linux-lts-backport-natty package, but I had a hard time figuring out how to apply it to the larger project. If someone could do this I think it would be helpful.

2. After a suspend and wake the laptop screen flickers slightly on either the left 2/3s or the right 1/3.

John Bender (johnbender) wrote :

I risked installing two newer versions of the kernel from the kernel ppa


I was rewarded with a mostly working video setup, though with the 3.0.1 kernel there was some odd behavior as well. Hopefully I''m not clouding the issue here. Again, I'm happy to try anything you guys have in mind.

John Bender (johnbender) wrote :

After installing the updated xserver-xorg-video-intel package found here:

I haven't had any further issues (artifacts, blank screens, etc) in nearly 2 hours of use and testing. Kernel and video driver configuration follow:

12:35 PM ~ ❱ uname -r
12:35 PM ~ ❱ dpkg -l xserver-xorg-video-intel | grep xserver
ii xserver-xorg-video-intel 2:2.14.0-4ubuntu7.2 X.Org X server -- Intel i8xx, i9xx display driver

I'll report back if I have any further issues. As always I'm happy to experiment if more information is needed.

John Bender (johnbender) wrote :

Spoke too soon. I'm still able to blank the right side or the whole screen occasionally when attaching, detaching or rotating, a VGA monitor with the kernel and driver mentioned in my previous post.

John Bender (johnbender) wrote :

12:10 AM ~ ❱ uname -r
12:12 AM ~ ❱ dpkg -l xserver-xorg-video-intel | grep xserver
ii xserver-xorg-video-intel 2:2.12.0-1ubuntu5.2 X.Org X server -- Intel i8xx, i9xx display driver
12:12 AM ~ ❱

The above works flawlessly after installing 10.10. Looking forward to a resolution to this issue for the vanilla Natty install.

Robert Hooker (sarvatt) wrote :

Can you please run apport-collect 812638 to attach your logs here so we can see more of what is going on? Sandybridge isn't supported in lucid so we have no idea what kind of userspace packages you are using, and with 2.6.38-11 and natty-proposed xserver-xorg-video-intel I can't reproduce this at all on a t420s

Robert Hooker (sarvatt) on 2011-08-09
Changed in linux-lts-backport-natty (Ubuntu):
status: Triaged → Incomplete
Steve Atwell (satwell) wrote :

Robert, since this is reproducible for us on a stock Natty install, I've generated an apport report on Natty, and I'm attaching it here.

Steps to reproduce:

1. Configure T420s in the BIOS to use Intel integrated graphics.
2. Install Natty with the Ubuntu desktop task
3. After install, GDM and X will start normally.
4. Shut down the laptop
5. Power on the laptop. When X starts, the display is corrupted as David explains above--2/3 of the screen is black and 1/3 is black and white striped. At this point, you can fix the display by closing the lid to suspend and then opening the lid again.

I should point out that not all T420s Thinkpads exhibit this problem. We have some, type 4174AY9, that have this problem. But also I have a 4174A11 model that doesn't have this problem.

Adrian Moya (adrianmoya) wrote :

Guys, I'm having similar problems with intel graphics on T420s, running Ubuntu Natty. I work fine some days, and other days I loose half screen or it simply hangs... not sure if I should open a new ticket or we are talking the same error here. Is there a way I can help with this problem?

John Bender (johnbender) wrote :

I'm not sure if it was clear from the above but I *do not* have this issue on boot. Only when I attach an external monitor to the VGA port ( I have not tried the display port ).

Hopefully I'll scrape some time together tonight to give you the aaport output (new to the tool).

John Bender (johnbender) wrote :


I don't have the linux-lts-backport-natty installed locally so the tool won't let me submit any output. I'm seeing this bug with a 64 bit install of Natty on my t420s, but I wasn't able to sort out how to add the vanilla install/kernel as an affected package as I mentioned earlier.

Sorry for the false start :(

Robert Hooker (sarvatt) wrote :

Steve: thanks for the apport report, what you attached shows you aren't running the 2.6.38-11 kernel where the problem you described is supposed to be fixed in though. I'm just curious, is there a difference in the bios revisions used on the working and not working machines? Specifically there was a vram size fix for the intel IGP in 1.13 and the machine with in the attached report is using 1.09. My working machine is on 1.13

Just for future reference on this bug I'm pasting the info on each model (which appear to be identical..)
ThinkPad T420s (4174-AY9)
i5-2520M(2.5GHz), 8GB RAM, 160GB Solid State Drive, 14in 1600x900 LCD, 1GB Nvidia N12P-NS2, Intel 802.11agn wireless, WWAN option, Bluetooth, 1Gb Ethernet, UltraNav, Secure Chip, Camera, 6c Li-Ion, Win7 Pro 64

ThinkPad T420s (4174-A11)
i5-2520M(2.5GHz) 8GB RAM 160GB Solid State Drive 14in 1600x900 LCD 1GB Nvidia N12P-NS2 Intel 802.11agn wireless WWAN option Bluetooth 1Gb Ethernet UltraNav Secure Chip Camera 6c Li-Ion Win7 Pro 64

Steve Atwell (satwell) wrote :

I've installed 2.6.38-11.48 from natty-proposed and see the same results as David above. That is, the effect is different in that instead of the whole display being corrupted, only 1/3 of the screen is corrupted. But still not working properly.

I've also tried upgrading the BIOS to 1.25, and I see no change in behavior.

Steve Atwell (satwell) wrote :

As for the two models, 4174-A11 and 4174-AY9, I haven't been able to find any differences whatsoever between the two. (In fact, Lenovo tells me that the hardware in them should be identical.)

The 4174-A11 I have behaves a little differently in that sometimes when X starts, it thinks that VGA is connected (it isn't) and sets the display to 1024x768 in mirroring mode. But even when this doesn't happen and it boots without VGA and running at native 1600x900, there's no corruption on the A11 model. The A11 is running the same BIOS as the AY9 (1.09 before, and new freshly upgraded to 1.25).

But I only have one A11, so it possible that it's a fluke that it works correctly. I have a whole pile of AY9s, and they all exhibit the corrupted display behavior.

John Bender (johnbender) wrote :

I've attached an image of my BIOS information for those interested. Again, I only experience the problem when I connect and then disconnect an external monitor from the VGA port.

Chris Van Hoof (vanhoof) on 2011-08-22
Changed in linux-lts-backport-natty (Ubuntu):
assignee: Chris Van Hoof (vanhoof) → Robert Hooker (sarvatt)
Robert Hooker (sarvatt) on 2011-08-24
Changed in linux-lts-backport-natty (Ubuntu):
status: Incomplete → Confirmed
Changed in linux-lts-backport-natty (Ubuntu Natty):
assignee: nobody → Robert Hooker (sarvatt)
importance: Undecided → Medium
status: New → Confirmed
milestone: none → natty-updates
Chris Van Hoof (vanhoof) on 2011-08-25
Changed in linux:
status: New → Invalid
affects: linux-lts-backport-natty (Ubuntu Natty) → linux (Ubuntu Natty)
Changed in linux (Ubuntu Natty):
milestone: natty-updates → none
Changed in linux (Ubuntu Oneiric):
status: Confirmed → Fix Released
Changed in linux:
status: Invalid → Fix Released
importance: Undecided → Medium
Robert Hooker (sarvatt) wrote :

Regarding this, I found it was limited to samsung panels and wasn't able to reproduce it because all of our machines had an LG panel. b24e71798871089da1a4ab049db2800afc1aac0c (drm/i915: add pipe/plane enable/disable functions) does indeed fix it when back ported to 2.6.38 but there is another followup commit to that needed as well (00d70b15125030391d17baab2c2f70f93b3339a6 drm/i915: skip redundant operations whilst enabling pipes and planes). I have backported both to natty here and dkms-ified i915 with the commits here for easier testing. The problem is this introduces a large potential for regression since it affects all Intel GPUs as well as being an extremely large change for a SRU and I have not had any luck minimally fixing it. Additional review and/or thoughts on potential ways to backport/quirk this into natty with minimal risk by someone on the kernel team would be greatly appreciated.

Chris Van Hoof (vanhoof) on 2011-09-08
Changed in linux (Ubuntu Natty):
assignee: Robert Hooker (sarvatt) → Jose Plans (jplans)
Changed in linux (Ubuntu Oneiric):
assignee: Robert Hooker (sarvatt) → nobody
Jose Plans (jplans) wrote :

SRU Justification:

  Every Lenovo x420s with Samsung panels will present a corrupted display when booting / mode setting. The systems are not usable.


  Backported patch commit from upstream: b24e71798871089da1a4ab049db2800afc1aac0c drm/i915: add pipe/plane
enable/disable functions by Jesse Barnes.

Test case:
  The reproducer is to simply boot the system with any kernels prior to Oneiric and using Lenovo x420 and it's Intel graphical chipset.

Hardware tested was:
  - Lenovo x301 and on Lenovo x420s with Samsung panel.

  This a very intrusive patch, I have spent some time studying it and I came to the conclusion it would be safer and easier to maintain if this patch was include as-is rather than providing a forked patch. I would like the list opinion on this.

  There are three major changes:
 (1) Addition of functions allowing to cleanly add or remove pipes / planes.
 (2) Addition of assertion functions to alert help prevent scenarios where pipes or planes are not present and they should be. For example a plane is being activated but there was no pipe active to contain it.
 (3) During crtc mode setting, now the pipe and planes are allocated later in the process conforming to intel specifications. Seen at the changes made in: intel_crtc_mode_set() only affecting ironlake+/sandybridge.

(3) is the real fix for this panel issue, however (1) is necessary for
it as well as (2) helps preventing further regressions.

 drivers/gpu/drm/i915/i915_reg.h | 5 +-
 drivers/gpu/drm/i915/intel_display.c | 308
 2 files changed, 217 insertions(+), 96 deletions(-)

Andy Whitcroft (apw) on 2011-11-08
Changed in linux (Ubuntu Natty):
status: Confirmed → Fix Committed
Herton R. Krzesinski (herton) wrote :

This bug is awaiting verification that the kernel for Natty in -proposed solves the problem (2.6.38-13.52). Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-natty' to 'verification-done-natty'.

If verification is not done by one week from today, this fix will be dropped from the source code, and this bug will be closed.

See for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-natty
Jose Plans (jplans) wrote :

Tested on Lenovo t420s with 8086 : 0126 and Samsung panel (laptop presenting the issue originally)
 - 32 reboots no issues
 - 1 xrandr cycles no issues
 - 5 cycle suspend / resume no issues.

The issue appears to be fixed.

tags: added: verification-done-natty
removed: verification-needed-natty
Steve Atwell (satwell) wrote :

I just tried out the proposed Natty kernel on a T420s with a Samsung panel, and I saw no corruption over several reboots. So it looks good to me. Thanks!

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux - 2.6.38-13.52

linux (2.6.38-13.52) natty-proposed; urgency=low

  [Herton R. Krzesinski]

  * Release Tracking Bug
    - LP: #887379

  [ Konrad Rzeszutek Wilk ]

  * SAUCE: x86/paravirt: Partially revert "remove lazy mode in interrupts"
    - LP: #854050

  [ Ming Lei ]

  * SAUCE: [media] uvcvideo: Set alternate setting 0 on resume if the bus
    has been reset
    - LP: #816484

  [ Seth Forshee ]

  * SAUCE: acer-wmi: Add wireless quirk for Lenovo 3000 N200
    - LP: #857297

  [ Upstream Kernel Changes ]

  * Make TASKSTATS require root access, CVE-2011-2494
    - LP: #866021
    - CVE-2011-2494
  * proc: restrict access to /proc/PID/io, CVE-2011-2495
    - LP: #866025
    - CVE-2011-2495
  * proc: fix a race in do_io_accounting(), CVE-2011-2495
    - LP: #866025
    - CVE-2011-2495
  * staging: comedi: fix infoleak to userspace, CVE-2011-2909
    - LP: #869261
    - CVE-2011-2909
  * perf tools: do not look at ./config for configuration, CVE-2011-2905
    - LP: #869259
    - CVE-2011-2905
  * e1000e: workaround for packet drop on 82579 at 100Mbps
    - LP: #870127
  * eCryptfs: Remove unnecessary grow_file() function
    - LP: #745836
  * eCryptfs: Remove ECRYPTFS_NEW_FILE crypt stat flag
    - LP: #745836
  * block: blkdev_get() should access ->bd_disk only after success
    - LP: #857170
  * ipv6: restore correct ECN handling on TCP xmit
    - LP: #872179
  * nl80211: fix overflow in ssid_len - CVE-2011-2517
    - LP: #869245
    - CVE-2011-2517
  * ksm: fix NULL pointer dereference in scan_get_next_rmap_item() -
    - LP: #869227
    - CVE-2011-2183
  * NLM: Don't hang forever on NLM unlock requests - CVE-2011-2491
    - LP: #869237
    - CVE-2011-2491
  * KVM: fix kvmclock regression due to missing clock update
    - LP: #795717
  * drm/i915: don't enable plane, pipe and PLL prematurely
    - LP: #812638
  * drm/i915: add pipe/plane enable/disable functions
    - LP: #812638
 -- Herton Ronaldo Krzesinski <email address hidden> Mon, 07 Nov 2011 22:11:51 -0200

Changed in linux (Ubuntu Natty):
status: Fix Committed → Fix Released
Guilherme Salgado (salgado) wrote :

I just saw the same symptom when enabling mapsgl on google maps. Filed bug 1011344 (against xorg since it seemed to generate a bunch of xorg crash files on /var/crash) for it

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

Other bug subscribers