Bug 62462 - 2 Displayport Screens on Lenovo x230(Intel HD4000) Dock: several things make one of them stop working.
Summary: 2 Displayport Screens on Lenovo x230(Intel HD4000) Dock: several things make...
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: XOrg git
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Daniel Vetter
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-03-18 10:16 UTC by Marco Vujevic
Modified: 2017-07-24 22:58 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments
messages log (161.75 KB, text/plain)
2013-03-19 10:14 UTC, Marco Vujevic
no flags Details
kernel 3.8 boot with drm debug (101.51 KB, text/plain)
2013-03-20 08:58 UTC, Marco Vujevic
no flags Details
log after resume from suspend, 1 of 2 external screens not working. (392.69 KB, text/plain)
2013-04-16 07:33 UTC, Marco Vujevic
no flags Details
log after resume from suspend, 1 of 2 external screens not working. (195.17 KB, application/octet-stream)
2013-04-16 07:44 UTC, Marco Vujevic
no flags Details
1920x1200 error (305.91 KB, text/plain)
2013-08-10 13:14 UTC, frederik
no flags Details

Description Marco Vujevic 2013-03-18 10:16:31 UTC
Hi,

I have 2 (diffrent) Dell 1920x1200 screens connected via DisplayPort to a Lenovo x230 Dock running debian testing. (
I use these in a 3x screen setup, with the laptop display.
(xrandr --output DP2 --mode 1920x1200 --pos 0x0 --rotate left --output DP3 --mode 1920x1200 --pos 1200x0 --rotate normal --output LVDS1 --mode 1366x768 --pos 1200x1200 --rotate normal)

The problem is that there are several ways to get the system into a state where one extenal screen is not getting a signal anymore and switching to powersave.
(the internal lvds allways works)

Sometimes after suspend to ram, only the lvds and 1 external screen will wake up.
Booting the laptop with both screens powered on, will lead to only lvds and one  of the screens working.
powercycling one screen can also  produce this problem.

When the problem occurs i get something like this in /var/log/messages:



Mar 18 09:21:03 saaclt0006 kernel: [   64.516098] ------------[ cut here ]------------
Mar 18 09:21:03 saaclt0006 kernel: [   64.516144] WARNING: at /build/buildd-linux_3.7.3-1~experimental.1-amd64-04zOQ2/linux-3.7.3/drivers/gpu/drm/i915/intel_dp.c:1908 ironlake_crtc_disable+0x5a/0x720 [i915]()
Mar 18 09:21:03 saaclt0006 kernel: [   64.516146] Hardware name: 2320CTO
Mar 18 09:21:03 saaclt0006 kernel: [   64.516186] Modules linked in: parport_pc ppdev lp parport rfcomm bnep bluetooth crc16 cpufreq_userspace cpufreq_stats cpufreq_powersave cpufreq_conservative binfmt_misc uinput fuse nfsd auth_rpcgss nfs_acl nfs lockd dns_resolver fscache sunrpc ipt_MASQUERADE iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack ip_tables x_tables bridge stp llc loop snd_hda_codec_hdmi snd_hda_codec_realtek snd_usb_audio snd_usbmidi_lib uvcvideo snd_seq_midi snd_seq_midi_event videobuf2_vmalloc videobuf2_memops videobuf2_core snd_rawmidi videodev media coretemp kvm_intel kvm crc32c_intel ghash_clmulni_intel iTCO_wdt iTCO_vendor_support aesni_intel aes_x86_64 ablk_helper cryptd xts arc4 lrw gf128mul snd_hda_intel i2c_i801 snd_hda_codec snd_hwdep snd_pcm snd_page_alloc iwldvm psmouse snd_seq pcspkr snd_seq_device serio_raw snd_timer mac80211 battery thinkpad_acpi tpm_tis tpm tpm_bios nvram evdev i915 joydev snd ac iwlwifi wmi drm_kms_helper drm cfg80211 i2c_algo_bit i2c_core
Mar 18 09:21:03 saaclt0006 kernel: rfkill video mei lpc_ich mfd_core button acpi_cpufreq mperf soundcore processor ext3 mbcache jbd dm_mod hid_generic sg sd_mod crc_t10dif usbhid hid microcode thermal thermal_sys ahci libahci xhci_hcd sdhci_pci sdhci mmc_core ehci_hcd libata scsi_mod usbcore usb_common e1000e
Mar 18 09:21:03 saaclt0006 kernel: [   64.516228] Pid: 3549, comm: Xorg Not tainted 3.7-trunk-amd64 #1 Debian 3.7.3-1~experimental.1
Mar 18 09:21:03 saaclt0006 kernel: [   64.516229] Call Trace:
Mar 18 09:21:03 saaclt0006 kernel: [   64.516239]  [<ffffffff8103cea4>] ? warn_slowpath_common+0x76/0x8a
Mar 18 09:21:03 saaclt0006 kernel: [   64.516260]  [<ffffffffa02e3b1a>] ? ironlake_crtc_disable+0x5a/0x720 [i915]
Mar 18 09:21:03 saaclt0006 kernel: [   64.516281]  [<ffffffffa02f0eb9>] ? intel_dp_mode_fixup+0x1d9/0x219 [i915]
Mar 18 09:21:03 saaclt0006 kernel: [   64.516303]  [<ffffffffa02e8f84>] ? intel_set_mode+0x38a/0x787 [i915]
Mar 18 09:21:03 saaclt0006 kernel: [   64.516323]  [<ffffffffa02e992f>] ? intel_crtc_set_config+0x5ae/0x758 [i915]
Mar 18 09:21:03 saaclt0006 kernel: [   64.516334]  [<ffffffffa0284705>] ? drm_setup_crtcs+0x541/0x55f [drm_kms_helper]
Mar 18 09:21:03 saaclt0006 kernel: [   64.516339]  [<ffffffff810612eb>] ? should_resched+0x5/0x23
Mar 18 09:21:03 saaclt0006 kernel: [   64.516348]  [<ffffffffa028485f>] ? drm_fb_helper_set_par+0x64/0xa9 [drm_kms_helper]
Mar 18 09:21:03 saaclt0006 kernel: [   64.516357]  [<ffffffffa0284ab7>] ? drm_fb_helper_single_fb_probe+0x213/0x295 [drm_kms_helper]
Mar 18 09:21:03 saaclt0006 kernel: [   64.516366]  [<ffffffffa028489a>] ? drm_fb_helper_set_par+0x9f/0xa9 [drm_kms_helper]
Mar 18 09:21:03 saaclt0006 kernel: [   64.516370]  [<ffffffff811f2dea>] ? fb_set_var+0x246/0x32c
Mar 18 09:21:03 saaclt0006 kernel: [   64.516373]  [<ffffffff810612eb>] ? should_resched+0x5/0x23
Mar 18 09:21:03 saaclt0006 kernel: [   64.516379]  [<ffffffff813778f2>] ? _cond_resched+0x6/0x1b
Mar 18 09:21:03 saaclt0006 kernel: [   64.516383]  [<ffffffff8112cc5d>] ? __getblk+0x23/0x26f
Mar 18 09:21:03 saaclt0006 kernel: [   64.516389]  [<ffffffff811fbb0a>] ? fbcon_blank+0x71/0x1bd
Mar 18 09:21:03 saaclt0006 kernel: [   64.516394]  [<ffffffff812554b2>] ? do_unblank_screen+0xda/0x148
Mar 18 09:21:03 saaclt0006 kernel: [   64.516399]  [<ffffffff8124da4c>] ? vt_ioctl+0x4ac/0xfca
Mar 18 09:21:03 saaclt0006 kernel: [   64.516404]  [<ffffffff81057658>] ? bit_waitqueue+0x11/0x75
Mar 18 09:21:03 saaclt0006 kernel: [   64.516408]  [<ffffffff811266f0>] ? __inode_wait_for_writeback+0x67/0xae
Mar 18 09:21:03 saaclt0006 kernel: [   64.516413]  [<ffffffff812460e7>] ? tty_ioctl+0x91c/0x98b
Mar 18 09:21:03 saaclt0006 kernel: [   64.516418]  [<ffffffff810f9572>] ? kmem_cache_free+0x2d/0x69
Mar 18 09:21:03 saaclt0006 kernel: [   64.516422]  [<ffffffff811147ca>] ? vfs_ioctl+0x1e/0x31
Mar 18 09:21:03 saaclt0006 kernel: [   64.516425]  [<ffffffff81115002>] ? do_vfs_ioctl+0x3ee/0x430
Mar 18 09:21:03 saaclt0006 kernel: [   64.516428]  [<ffffffff8110929c>] ? __fput+0x18a/0x1b1
Mar 18 09:21:03 saaclt0006 kernel: [   64.516433]  [<ffffffff8111e01a>] ? mntput_no_expire+0x2d/0x137
Mar 18 09:21:03 saaclt0006 kernel: [   64.516436]  [<ffffffff810612eb>] ? should_resched+0x5/0x23
Mar 18 09:21:03 saaclt0006 kernel: [   64.516440]  [<ffffffff813778f2>] ? _cond_resched+0x6/0x1b
Mar 18 09:21:03 saaclt0006 kernel: [   64.516443]  [<ffffffff81115091>] ? sys_ioctl+0x4d/0x7c
Mar 18 09:21:03 saaclt0006 kernel: [   64.516446]  [<ffffffff81054cfd>] ? task_work_add+0x41/0x4d
Mar 18 09:21:03 saaclt0006 kernel: [   64.516451]  [<ffffffff8137d6e9>] ? system_call_fastpath+0x16/0x1b
Mar 18 09:21:03 saaclt0006 kernel: [   64.516454] ---[ end trace b6c8a65486a744dd ]---


This has annoyed me for long enough now, and i am willing to deliver whatever information/testing needed to find the problem and fix it.

Feel free to request any information needed.

Versions:

X.Org X Server 1.12.4

[    27.300] (II) LoadModule: "intel"
[    27.300] (II) Loading /usr/lib/xorg/modules/drivers/intel_drv.so
[    27.303] (II) Module intel: vendor="X.Org Foundation"
[    27.303]    compiled for 1.12.4, module version = 2.21.4
(xorg/driver/xf86-video-intel compiled with :
./configure --enable-sna --disable-udev --prefix=/usr/

kernel:
Linux saaclt0006 3.8-trunk-amd64 #1 SMP Debian 3.8.2-1~experimental.1 x86_64 GNU/Linux

Hardware :
Lenovo x230 with :

00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09) (prog-if 00 [VGA controller])
	Subsystem: Lenovo Device 21fa
	Flags: bus master, fast devsel, latency 0, IRQ 46
	Memory at f0000000 (64-bit, non-prefetchable) [size=4M]
	Memory at e0000000 (64-bit, prefetchable) [size=256M]
	I/O ports at 5000 [size=64]
	Expansion ROM at <unassigned> [disabled]
	Capabilities: <access denied>
	Kernel driver in use: i915

Processor:
model name	: Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz
Comment 1 Chris Wilson 2013-03-18 17:11:31 UTC
Hmm, can you confirm that WARN with 3.8? The one you copied is from 3.7, and it is an area under active development, as is making 3 pipe handling more robust.
Comment 2 Marco Vujevic 2013-03-19 10:05:30 UTC
the snippet i posted probably was indeed from 3.7, sory about that, i regularly try both, the latest 3.7 and latest 3.8 from debian experimental.

I'll attach a full messages file to this ticket which has a bootup with 3.7 and its error and 3.8 and the error i get there.

also, i just un-suspended the laptop and one screen is off again, on the next reboot i will activate the drm.debug=0xe and use 3.8
Comment 3 Marco Vujevic 2013-03-19 10:14:01 UTC
Created attachment 76748 [details]
messages log

after resume at the end of the log, the laptop is awake again, and one screen is not working. But there is no error message this time.
Comment 4 Marco Vujevic 2013-03-20 08:58:30 UTC
Created attachment 76803 [details]
kernel 3.8 boot with drm debug

log from boot to suspend to wakeup.
contains 2 warnings with call trace.
after wakeup only one external and internal screen working.
No error or warning though, after wakeup.
kernel 3.8 from debian experimental, with drm.debug=0xe.
Comment 5 georges 2013-04-12 08:16:51 UTC
Hi,

I am running a thinkpad x220 on a dockingstation with two displayport displays.
Both run at 2560x1440.

I also experienced for a long time various errors ranging from blank display, to black display with weird colors in the corners to flickering all over the display.
It seems to only happen when flash is active.
Solution -> pull the plug on the display -> back on -> works.

I am running Debian wheezy (testing) with a custom kernel 3.8.6.
Recently (somewhere in the 3.8.x series) some problems just disappeared and the only one left seems to be on suspend-resume and after the initial boot and setting the resolution to the one mentioned above...here it's not always the same, sometimes flickering or just blank display.

Here a trace from today:

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

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

------------[ cut here ]------------
WARNING: at drivers/gpu/drm/i915/intel_display.c:1028 ironlake_crtc_disable+0xb7/0x775 [i915]()
Hardware name: 42914BG
pipe_off wait timed out
Modules linked in: xt_state iptable_filter pci_stub vboxpci(O) vboxnetadp(O) vboxnetflt(O) bnep rfcomm bluetooth vboxdrv(O) fuse nfsd auth_rpcgss nfs_acl nfs lockd fscache sunrpc ext4 jbd2 mbcache tp_smapi(O) thinkpad_ec(O) sha256_generic iwldvm iTCO_wdt psmouse kvm_intel cdc_mbim kvm i2c_i801 thinkpad_acpi battery cdc_ncm usbnet snd_usb_audio mii snd_usbmidi_lib cdc_wdm snd_rawmidi cdc_acm snd_hwdep snd_hda_codec_hdmi ac tpm_tis tpm snd_hda_codec_conexant tpm_bios snd_hda_intel snd_hda_codec snd_pcm iwlwifi snd_page_alloc snd_timer lpc_ich mfd_core acpi_cpufreq mperf processor xfs libcrc32c exportfs hid_generic hid_logitech_dj crc32c_intel aesni_intel aes_x86_64 xts lrw gf128mul ablk_helper cryptd sdhci_pci sdhci mmc_core microcode xhci_hcd thermal i915 video drm_kms_helper button
Pid: 3997, comm: Xorg Tainted: G           O 3.8.6 #35
Call Trace:
 [<ffffffff81029e18>] ? warn_slowpath_common+0x76/0x8a
 [<ffffffff81029ec4>] ? warn_slowpath_fmt+0x45/0x4a
 [<ffffffffa0038278>] ? intel_wait_for_pipe_off+0x8e/0x166 [i915]
 [<ffffffffa0038ab2>] ? ironlake_crtc_disable+0xb7/0x775 [i915]
 [<ffffffffa003ef27>] ? intel_set_mode+0x382/0x7ae [i915]
 [<ffffffff810d3ac8>] ? poll_freewait+0x36/0x83
 [<ffffffffa003f90f>] ? intel_crtc_set_config+0x5bc/0x764 [i915]
 [<ffffffff81151ffc>] ? snprintf+0x39/0x3e
 [<ffffffff811e8147>] ? drm_mode_setcrtc+0x409/0x46c
 [<ffffffff813cc1c9>] ? mutex_lock+0xd/0x2d
 [<ffffffff811dbe08>] ? drm_ioctl+0x28c/0x36a
 [<ffffffff811e7d3e>] ? drm_mode_setplane+0x2e5/0x2e5
 [<ffffffff810d29a6>] ? vfs_ioctl+0x1e/0x31
 [<ffffffff810d31dd>] ? do_vfs_ioctl+0x3ed/0x42f
 [<ffffffff810c63c7>] ? vfs_read+0xf7/0x11e
 [<ffffffff810d325a>] ? sys_ioctl+0x3b/0x65
 [<ffffffff813ce712>] ? system_call_fastpath+0x16/0x1b
---[ end trace 8ee801de211f13f7 ]---


Hope this helps
Comment 6 Marco Vujevic 2013-04-16 07:31:50 UTC
another logwith 2 errors:

Apr 15 10:41:15 saaclt0006 kernel: [137097.813645] WARNING: at /build/buildd-linux_3.8.3-1~experimental.1-amd64-feiEIr/linux-3.8.3/drivers/gpu/drm/i915/intel_display.c:78
77 intel_modeset_check_state+0x324/0x506 [i915]()
Apr 15 10:41:15 saaclt0006 kernel: [137097.813647] Hardware name: 2320CTO
Apr 15 10:41:15 saaclt0006 kernel: [137097.813649] encoder's hw state doesn't match sw tracking (expected 1, found 0)

Apr 15 10:41:15 saaclt0006 kernel: [137097.848943] WARNING: at /build/buildd-linux_3.8.3-1~experimental.1-amd64-feiEIr/linux-3.8.3/drivers/gpu/drm/i915/intel_dp.c:1987 ironlake_crtc_disable+0x5a/0x74c [i915]()

wakeup after suspend, one of 2 external screens not working. complete log attached as log-apr-15
Comment 7 Marco Vujevic 2013-04-16 07:33:16 UTC
Created attachment 78061 [details]
log after resume from suspend, 1  of 2 external screens not working.
Comment 8 Marco Vujevic 2013-04-16 07:44:34 UTC
Created attachment 78062 [details]
log after resume from suspend, 1  of 2 external screens not working.

another one with latest xfree-video-intel 2.21.6 and latest 3.8-trunk kernel from debian expeimental (3.8.5-1~experimental.1)

after resume from suspend, 1  of 2 external screens not working.

zipped due to size. the latest debian kernel seems to be very verbose with debug enabled.
Comment 9 spam 2013-04-29 08:28:04 UTC
Upgrading from Ubuntu 12.10 to 13.04 caused this bug to appear on an Asus UX31A computer with Intel HD4000 graphics.
Specifically, going into any full-screen game caused the external screen to stop responding, with this error : [drm:intel_dp_complete_link_train] *ERROR*

Reverting to linux-image-3.7.1-030701-generic_3.7.1-030701.201212171620_amd64.deb
solved the problem.
Comment 10 Daniel Vetter 2013-04-29 09:02:25 UTC
(In reply to comment #9)
> Upgrading from Ubuntu 12.10 to 13.04 caused this bug to appear on an Asus
> UX31A computer with Intel HD4000 graphics.
> Specifically, going into any full-screen game caused the external screen to
> stop responding, with this error : [drm:intel_dp_complete_link_train] *ERROR*
> 
> Reverting to
> linux-image-3.7.1-030701-generic_3.7.1-030701.201212171620_amd64.deb
> solved the problem.

Can you please file a separate bug for your issue? Please boot with drm.debug=0xe added to your kernel cmdline and attach the complete dmesg for both a working and a broken kernel.
Comment 11 Chris Wilson 2013-06-12 12:37:17 UTC
I think a candidate for Daniel's PLL sharing rework.
Comment 12 Daniel Vetter 2013-06-12 12:39:16 UTC
Hm yeah. Can you please test the git stuff branch from my personal repo at

http://cgit.freedesktop.org/~danvet/drm/log/?h=stuff
Comment 13 Chris Wilson 2013-07-17 11:59:47 UTC
No response, so presuming fixed by the shared PLL improvements.
Comment 14 frederik 2013-08-10 12:27:40 UTC
Problem seems to be fixed when using 2x 1920x1080. No Problems even after wakeup...
But there are still the same problems for me when using 2x 1920x1200.
Comment 15 Daniel Vetter 2013-08-10 13:04:49 UTC
Can you please boot with drm.debug=0xe on latest drm-intel-fixes with the problematic 1080p resolutions and attach the complete dmesg?
Comment 16 frederik 2013-08-10 13:14:35 UTC
Created attachment 83925 [details]
1920x1200 error

Debug with Linux 3.10.5 and xf86-video-intel 2.21.14
Comment 17 Daniel Vetter 2013-08-10 19:17:51 UTC
Hm, can you please retest with latest 3.11-rc kernels or the drm-intel-fixes branch at http://cgit.freedesktop.org/~danvet/drm-intel/ ? We've changed a few relevant things in the code, so testing on 3.10 kernels isn't that useful.
Comment 18 frederik 2013-08-10 21:07:46 UTC
Just have tested it with newest mainline. I'm sorry that I wasted your time. With that kernel it works perfectly. Tried a few reboots, coldstarts and even sleeps and hibernates.

Thanks!
Comment 19 Daniel Vetter 2013-08-11 10:21:46 UTC
Wohoo, so I'd vote on the pch pll changes to have fixed this. And no problem with testing older kernels, we're used to "oh, latest git fixes this ..." reports ;-)

Thanks a lot for reporting this issue and please reopen (or file a new one) if something breaks again.


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.