Bug 90430 - [DP] [HD4600 MST] DisplayPort MST crash with Dell M3800 laptop + Dell UP2414Q monitor
Summary: [DP] [HD4600 MST] DisplayPort MST crash with Dell M3800 laptop + Dell UP2414Q...
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: DRI git
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Clinton Taylor
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-05-13 02:00 UTC by cyshei
Modified: 2017-06-29 18:19 UTC (History)
5 users (show)

See Also:
i915 platform: HSW
i915 features: display/DP MST


Attachments
Kernel log with drm.debug=0x06 (297.84 KB, text/plain)
2015-05-13 02:00 UTC, cyshei
no flags Details
Kernel 4.4 log with drm.debug=0x1e log_buf_len=1M (354.67 KB, text/plain)
2016-01-11 03:17 UTC, cyshei
no flags Details
Picture of screen after boot hang w/monitor plugged in (2.02 MB, image/jpeg)
2016-05-03 02:27 UTC, cyshei
no flags Details
Video corruption after plugging in monitor (3.20 MB, image/jpeg)
2016-05-03 02:28 UTC, cyshei
no flags Details
Full dmesg output with drm-intel-nightly and drm.debug=0x1e log_buf_len=1M (9.62 MB, text/plain)
2016-10-21 23:10 UTC, cyshei
no flags Details
Screenshot of bad display (2.15 MB, image/jpeg)
2016-10-21 23:10 UTC, cyshei
no flags Details

Description cyshei 2015-05-13 02:00:25 UTC
Created attachment 115728 [details]
Kernel log with drm.debug=0x06

Whenever I plug my Dell UP2414Q monitor (with MST enabled) into my Dell M3800 laptop's mini-displayport, all video completely freezes and I have to reboot my laptop.  Plugging the same monitor in with MST disabled works fine, although as expected, I only get 3140x2160 @ 30 Hz output.  This is on Gentoo Linux, although I can also reproduce the same thing on a Ubuntu 15.04 or Fedora 21 live USB.  This is 100% reproducible as soon as the monitor is plugged in or if the system boots with the monitor already plugged in.

The laptop has an Optimus setup with an i7-4712HQ CPU and an NVIDIA Quadro K1100M.  As another data point, the same monitor works fine over DisplayPort with MST enabled at 60 Hz on my Lenovo TS140 server with the Xeon E3-1225 v3's integrated graphics.

Attached is the kernel log with drm.debug=0x06 and the latest nightly branch of drm-intel-nightly as of today (5/12/2015).  Please let me know if I can collect any other useful data to help debug this.  Here's what appears to be the most relevant section:

------------[ cut here ]------------
WARNING: CPU: 0 PID: 219 at drivers/gpu/drm/drm_dp_mst_topology.c:1272 process_single_tx_qlock+0x5bf/0x620 [drm_kms_helper]()
fail
Modules linked in: bnep bluetooth snd_hda_codec_realtek msr snd_hda_codec_generic b43 ssb mac80211 cfg80211 x86_pkg_temp_thermal rfkill coretemp kvm_intel dcdbas kvm crct10dif_pclmul crct10dif_common crc32c_intel aesni_intel glue_helper joydev lrw ablk_helper cryptd microcode efivars i2c_i801 hid_multitouch i915 snd_hda_intel i2c_algo_bit drm_kms_helper snd_hda_codec snd_hwdep snd_hda_core drm snd_pcm bcma snd_timer i2c_core intel_gtt snd thermal fan battery rtc_cmos ac video backlight processor thermal_sys button efivarfs ipv6 aes_x86_64 sha512_generic sha1_generic scsi_transport_iscsi e1000 fuse nfs lockd grace sunrpc multipath linear raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx raid1 raid0 dm_snapshot dm_bufio dm_crypt dm_mirror dm_region_hash dm_log dm_mod
 hid_sunplus hid_sony led_class hid_samsung hid_pl hid_petalynx hid_gyration sl811_hcd ohci_pci ohci_hcd uhci_hcd mpt2sas raid_class megaraid_sas megaraid sx8 DAC960 cciss mptsas scsi_transport_sas mptfc scsi_transport_fc mptspi scsi_transport_spi mptscsih mptbase sg pdc_adma sata_inic162x sata_mv ata_piix sata_qstor sata_vsc sata_uli sata_sis sata_sx4 sata_nv sata_via sata_svw sata_sil24 sata_sil sata_promise pata_sis sd_mod usbhid ahci libahci libata
CPU: 0 PID: 219 Comm: kworker/0:1 Not tainted 4.1.0-rc3+ #2
Hardware name: Dell Inc. Dell Precision M3800/Dell Precision M3800, BIOS A09 01/08/2015
Workqueue: events_long drm_dp_mst_link_probe_work [drm_kms_helper]
 ffffffffa06edce0 ffff88046ee0f808 ffffffff815db28d 0000000000000007
 ffff88046ee0f858 ffff88046ee0f848 ffffffff8104c115 ffff88046ee0f850
 ffff88046b1e8610 0000000000001000 ffff88046b1e8610 000000000000000c
Call Trace:
 [<ffffffff815db28d>] dump_stack+0x45/0x57
 [<ffffffff8104c115>] warn_slowpath_common+0x85/0xc0
 [<ffffffff8104c191>] warn_slowpath_fmt+0x41/0x50
 [<ffffffffa06e292f>] process_single_tx_qlock+0x5bf/0x620 [drm_kms_helper]
 [<ffffffff81191e0b>] ? ep_poll_callback+0x11b/0x170
 [<ffffffffa06e29df>] process_single_down_tx_qlock+0x4f/0x170 [drm_kms_helper]
 [<ffffffffa06e2b63>] drm_dp_queue_down_tx+0x63/0x80 [drm_kms_helper]
 [<ffffffffa06e4136>] drm_dp_mst_i2c_xfer+0x146/0x1e0 [drm_kms_helper]
 [<ffffffff81165a18>] ? __d_instantiate+0x28/0xf0
 [<ffffffff811669c6>] ? d_rehash+0x46/0x60
 [<ffffffffa05c04a5>] __i2c_transfer+0x125/0x3d0 [i2c_core]
 [<ffffffffa05c07a1>] i2c_transfer+0x51/0x90 [i2c_core]
 [<ffffffffa062a634>] drm_do_probe_ddc_edid+0xc4/0x140 [drm]
 [<ffffffffa062bc6a>] drm_get_edid+0x2a/0x3f0 [drm]
 [<ffffffffa07d7c54>] ? intel_dp_add_mst_connector+0x114/0x140 [i915]
 [<ffffffffa06e5065>] drm_dp_add_port+0x1d5/0x3b0 [drm_kms_helper]
 [<ffffffff810917ea>] ? vprintk_default+0x1a/0x20
 [<ffffffff815d98a9>] ? printk+0x41/0x43
 [<ffffffffa061af30>] ? drm_ut_debug_printk+0x50/0x60 [drm]
 [<ffffffffa06e53d4>] drm_dp_send_link_address+0x194/0x230 [drm_kms_helper]
 [<ffffffffa06e54fd>] drm_dp_check_and_send_link_address+0x8d/0xa0 [drm_kms_helper]
 [<ffffffffa06e5527>] drm_dp_mst_link_probe_work+0x17/0x20 [drm_kms_helper]
 [<ffffffff81061fed>] process_one_work+0x13d/0x3d0
 [<ffffffff810622eb>] worker_thread+0x6b/0x490
 [<ffffffff81062280>] ? process_one_work+0x3d0/0x3d0
 [<ffffffff81062280>] ? process_one_work+0x3d0/0x3d0
 [<ffffffff81067376>] kthread+0xd6/0xf0
 [<ffffffff810672a0>] ? kthread_create_on_node+0x180/0x180
 [<ffffffff815e15d2>] ret_from_fork+0x42/0x70
 [<ffffffff810672a0>] ? kthread_create_on_node+0x180/0x180
---[ end trace e8d5675279135762 ]---
[drm:process_single_tx_qlock] sideband msg failed to send
[drm:process_single_down_tx_qlock] failed to send msg in q -5
[drm:drm_dp_dpcd_access] too many retries, giving up
[drm:drm_dp_dpcd_access] too many retries, giving up
[drm:drm_dp_dpcd_access] too many retries, giving up
[drm:drm_dp_dpcd_access] too many retries, giving up
[drm:intel_dp_check_mst_status] failed to get ESI - device may have failed
[drm:drm_dp_dpcd_access] too many retries, giving up
[drm:drm_dp_dpcd_access] too many retries, giving up
[drm:drm_dp_dpcd_access] too many retries, giving up
[drm:drm_dp_dpcd_access] too many retries, giving up
[drm:drm_dp_dpcd_access] too many retries, giving up
[drm:drm_dp_send_sideband_msg] failed to dpcd write 12 -5
------------[ cut here ]------------
Comment 1 danielhodder 2015-11-25 22:23:19 UTC
I can confirm the same behaviour with an MST hub. I have an EVGA MST Hub and I see the exact same issue as the original reporter.
Comment 2 cyshei 2016-01-11 03:17:37 UTC
Created attachment 120943 [details]
Kernel 4.4 log with drm.debug=0x1e log_buf_len=1M

I just upgraded to Linux 4.4 and MST is still completely broken :(
Comment 3 Jani Nikula 2016-04-25 07:51:19 UTC
Please try current v4.6-rc kernels or, if that fails, drm-intel-nightly branch of http://cgit.freedesktop.org/drm-intel
Comment 4 cyshei 2016-05-03 02:26:36 UTC
Progress!!  4.6.0-rc5 kind of worked, so I also tried drm-intel-nightly.  Results with drm-intel-nightly:

* Completely hangs during boot if monitor is plugged in (see attached screenshot).  The hang occurs before any system logging begins, so I don't see anything useful in the system log.
* If the monitor is plugged in while X is running, it doesn't get the correct resolution right away.  After playing with GNOME's display settings a bit, I was able to get monitor working at 4K @ 60 Hz!  It doesn't seem to be super stable though -- sometimes the video gets corrupted instead of looking right (see other attached screenshot).

Is there anything else I can do or try to help debug this?  Thanks!
Comment 5 cyshei 2016-05-03 02:27:19 UTC
Created attachment 123428 [details]
Picture of screen after boot hang w/monitor plugged in
Comment 6 cyshei 2016-05-03 02:28:01 UTC
Created attachment 123429 [details]
Video corruption after plugging in monitor
Comment 7 dog 2016-10-19 19:31:36 UTC
Quite a few changes have been made to the DP driver over the past few months since your last comment.  Can you retest with the latest upstream code as of today and post your results?  Thanks!
Comment 8 cyshei 2016-10-21 23:08:38 UTC
Sure, just tried it with the drm-intel-nightly branch, and while things are certainly better (boot no longer hangs when monitor is plugged in), I'd say it actually works less than 50% of the time.  I did get the monitor up and running at the correct resolution a few times, but more often than not, it either shows a black screen or a corrupted display.
Comment 9 cyshei 2016-10-21 23:10:12 UTC
Created attachment 127457 [details]
Full dmesg output with drm-intel-nightly and drm.debug=0x1e log_buf_len=1M
Comment 10 cyshei 2016-10-21 23:10:58 UTC
Created attachment 127458 [details]
Screenshot of bad display
Comment 11 cyshei 2016-10-21 23:13:04 UTC
The previous kernel log goes with the screenshot I just uploaded.  Also, a couple of the times when the monitor was showing a black screen, I saw this in the kernel log (but hadn't booted with the drm.debug=0x1e option, so this is all I got):

[ 4002.714910] [drm:intel_set_cpu_fifo_underrun_reporting [i915]] *ERROR*
uncleared fifo underrun on pipe B
[ 4002.714923] [drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU
pipe B FIFO underrun
Comment 12 Tomasz Fortuna 2016-11-02 19:38:34 UTC
I can reproduce the error on my setup:
- zbook 14 with intel/radeon switcheroo 
- trying to use MST using some `renkforce' dongle

ii  xserver-xorg-video-intel                     2:2.99.917+git20160706-1  
Kernel: 4.7.8 (self-compiled Debian testing/Stretch kernel)

I get:
[  140.782715] [drm:intel_set_cpu_fifo_underrun_reporting [i915]] *ERROR* uncleared fifo underrun on pipe B
[  140.782741] [drm:ironlake_irq_handler [i915]] *ERROR* CPU pipe B FIFO underrun

xrandr shows correctly detected displays and I can get ONE to turn on by first going for 800x600 resolution and then changing to 1920x1080. But it flickers from time to time.
Comment 13 Jani Saarinen 2016-12-09 11:20:36 UTC
Is this issue still seen with latest kernel?
Comment 14 cyshei 2017-02-18 16:42:11 UTC
(In reply to Jani Saarinen from comment #13)
> Is this issue still seen with latest kernel?

Yes, I just tried drm-tip from today and saw the same results that I reported in my previous comment.  It sorta-almost works, but most of the time one half of the monitor is corrupted/not at the right resolution.
Comment 15 Jani Saarinen 2017-05-24 05:48:38 UTC
Hi, Is this still valid. Sorry not able to provide data that we have real fix for this.
Comment 16 Jani Saarinen 2017-06-08 06:56:11 UTC
Just ping if this is still valid?
Comment 17 cyshei 2017-06-12 20:00:29 UTC
Hi, sorry, I haven't gotten a chance to try this lately, but I can say that it at least no longer hangs the whole machine with the 4.9 kernel.  Additionally, I've also gotten a Skylake Dell XPS 13, and it also has the same problems detecting and setting the monitor's mode correctly.  Will try to find some time to build drm-tip and give this another try soon.
Comment 18 Ricardo Madrigal 2017-06-29 17:45:48 UTC
Hello,

I just tried to reproduce the problem with following configuration:

HSW NUC, using a MST dongle emulating MST enable, using mini-DP to DP with a external monitor (acer) 3840 x 2160.

Attaching my configuration used to test

======================================
             Software
======================================
kernel version              : 4.12.0-rc3-drm-tip-ww22-commit-187376e+
architecture                : x86_64
os version                  : Ubuntu 17.04
os codename                 : zesty
kernel driver               : i915
bios revision               : 4.6
bios release date           : 03/02/2017

======================================
        Graphic drivers
======================================
mesa                      : 17.0.3
modesetting               : modesetting_drv.so
xorg-xserver              : 1.19.3
libdrm                    : 2.4.76
libva                     : 1.7.3-2
vaapi (intel-driver)      : 1.7.3
cairo                     : 1.14.8-1
intel-gpu-tools           : 1.17-1

======================================
             Hardware
======================================
platform                   : HSW-Nuc
motherboard id             : D54250WYK
form factor                : Desktop
cpu family                 : Core i5
cpu family id              : 6
cpu information            : Intel(R) Core(TM) i5-4250U CPU @ 1.30GHz
gpu card                   : Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 09) (prog-if 00 [VGA controller])
memory ram                 : 3.79 GB
max memory ram             : 16 GB
cpu thread                 : 4
cpu core                   : 2
cpu model                  : 69
cpu stepping               : 1
socket                     : Socket LGA1150
signature                  : Type 0, Family 6, Model 69, Stepping 1
hard drive                 : 223GiB (240GB)
current cd clock frequency : 450000 kHz
maximum cd clock frequency : 450000 kHz


i did not hava any issue.
Works for me


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.