Bug 85670 - [hsw DP] Haswell Iris 5100 DisplayPort stops working when USB3 device is connected
Summary: [hsw DP] Haswell Iris 5100 DisplayPort stops working when USB3 device is conn...
Status: CLOSED INVALID
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-10-31 02:10 UTC by Andrzej Pronobis
Modified: 2017-07-24 22:50 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments
Dmesg output with drm.debug=14 (251.97 KB, text/plain)
2014-11-21 21:19 UTC, Andrzej Pronobis
no flags Details

Description Andrzej Pronobis 2014-10-31 02:10:24 UTC
I'm using Ubuntu 14.10 with kernels 3.16 and 3.18 rc1. In both cases I am able to successfully use my DisplayPort and display content on my external monitor. My XRandr output when monitor is connected:

Screen 0: minimum 8 x 8, current 2560 x 1440, maximum 32767 x 32767
eDP1 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 294mm x 165mm
   2560x1440      60.0*+
   1920x1440      60.0  
   1856x1392      60.0  
   1792x1344      60.0  
   1920x1200      60.0  
   1920x1080      59.9  
   1600x1200      60.0  
   1680x1050      60.0     59.9  
   1600x1024      60.2  
   1400x1050      60.0  
   1280x1024      60.0  
   1440x900       59.9  
   1280x960       60.0  
   1360x768       59.8     60.0  
   1152x864       60.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
DP1 connected (normal left inverted right x axis y axis)
   2560x1600      59.9 +
   1920x1440      60.0  
   1920x1200      59.9  
   1600x1200      60.0  
   1680x1050      60.0  
   1280x1024      75.0     60.0  
   1280x800       59.8  
   1152x864       75.0  
   1024x768       75.1     60.0  
   800x600        75.0     60.3  
   640x480        75.0     60.0  
   720x400        70.1  
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

However, attaching a usb device to a USB 3.0 port next to my DP port immediately makes my external monitor black. If things happen in that order, typically that is the only symptom, however, if the external monitor is configured after the USB device is plugged in, then the following backtrace appears in dmesg:

[   57.685383] ------------[ cut here ]------------
[   57.685396] WARNING: CPU: 0 PID: 1879 at /build/buildd/linux-3.16.0/drivers/gpu/drm/i915/intel_dp.c:3122 intel_dp_link_down+0x1a9/0x230 [i915]()
[   57.685397] Modules linked in: cdc_ether usbnet r8152 mii pci_stub vboxpci(OE) vboxnetadp(OE) vboxnetflt(OE) vboxdrv(OE) autofs4 arc4 uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_core btusb snd_soc_rt5640 v4l2_common intel_rapl asus_nb_wmi snd_soc_rl6231 x86_pkg_temp_thermal videodev intel_powerclamp snd_soc_core asus_wmi media sparse_keymap snd_compress coretemp snd_pcm_dmaengine snd_seq_midi snd_seq_midi_event kvm_intel hid_multitouch kvm iwlmvm mac80211 crct10dif_pclmul crc32_pclmul snd_rawmidi ghash_clmulni_intel aesni_intel iwlwifi aes_x86_64 lrw gf128mul bnep glue_helper rfcomm ablk_helper snd_seq dm_multipath cryptd snd_hda_codec_hdmi bluetooth scsi_dh snd_hda_codec_realtek snd_hda_codec_generic 6lowpan_iphc joydev snd_hda_intel snd_hda_controller cfg80211 snd_hda_codec serio_raw
[   57.685422]  snd_hwdep snd_pcm mei_me lpc_ich mei shpchp snd_seq_device snd_timer snd binfmt_misc dw_dmac mac_hid dw_dmac_core soundcore i2c_hid 8250_dw i2c_designware_platform snd_soc_sst_acpi i2c_designware_core spi_pxa2xx_platform parport_pc intel_smartconnect ppdev lp nls_iso8859_1 parport dm_mirror dm_region_hash dm_log hid_generic usbhid hid i915 ahci i2c_algo_bit drm_kms_helper libahci drm psmouse wmi video sdhci_acpi sdhci
[   57.685439] CPU: 0 PID: 1879 Comm: Xorg Tainted: G        W  OE 3.16.0-24-generic #32-Ubuntu
[   57.685440] Hardware name: ASUSTeK COMPUTER INC. UX301LAA/UX301LAA, BIOS UX301LAA.206 12/31/2013
[   57.685441]  0000000000000009 ffff8802115d7a68 ffffffff8277fcbc 0000000000000000
[   57.685443]  ffff8802115d7aa0 ffffffff8206fd8d ffff880035810000 0000000083000006
[   57.685445]  ffff880035ff0800 0000000000000001 ffff880035ff18d8 ffff8802115d7ab0
[   57.685447] Call Trace:
[   57.685450]  [<ffffffff8277fcbc>] dump_stack+0x45/0x56
[   57.685452]  [<ffffffff8206fd8d>] warn_slowpath_common+0x7d/0xa0
[   57.685455]  [<ffffffff8206fe6a>] warn_slowpath_null+0x1a/0x20
[   57.685467]  [<ffffffffc04a72a9>] intel_dp_link_down+0x1a9/0x230 [i915]
[   57.685479]  [<ffffffffc04ac745>] intel_dp_complete_link_train+0x105/0x390 [i915]
[   57.685491]  [<ffffffffc04a4798>] intel_ddi_pre_enable+0x1a8/0x1f0 [i915]
[   57.685503]  [<ffffffffc048d39c>] haswell_crtc_enable+0x3ac/0xa30 [i915]
[   57.685514]  [<ffffffffc0490940>] __intel_set_mode+0x830/0xab0 [i915]
[   57.685525]  [<ffffffffc0493af6>] intel_set_mode+0x16/0x30 [i915]
[   57.685536]  [<ffffffffc0494bba>] intel_crtc_set_config+0xa4a/0xda0 [i915]
[   57.685546]  [<ffffffffc03f16d1>] drm_mode_set_config_internal+0x61/0xe0 [drm]
[   57.685556]  [<ffffffffc03f5413>] drm_mode_setcrtc+0x283/0x580 [drm]
[   57.685563]  [<ffffffffc03e5a4f>] drm_ioctl+0x1df/0x680 [drm]
[   57.685566]  [<ffffffff821f4bc8>] do_vfs_ioctl+0x2c8/0x4a0
[   57.685568]  [<ffffffff821e31a1>] ? __sb_end_write+0x31/0x60
[   57.685570]  [<ffffffff821e0d12>] ? vfs_write+0x1b2/0x1f0
[   57.685572]  [<ffffffff821f4e21>] SyS_ioctl+0x81/0xa0
[   57.685575]  [<ffffffff82787ced>] system_call_fastpath+0x1a/0x1f
[   57.685576] ---[ end trace 79595adf5199c200 ]---
[   57.688050] [drm:intel_dp_complete_link_train] *ERROR* failed to train DP, aborting
Comment 1 Andrzej Pronobis 2014-10-31 02:11:55 UTC
I would like to add that everything works as expected in Windows on the same hardware.
Comment 2 Jani Nikula 2014-10-31 08:07:06 UTC
Does it make a difference what kind of USB device is connected to the port? In particular, I'm interested in the power consumption of the device. Does a regular USB memory stick (presumably that draws very little current) also reproduce the issue?
Comment 3 Jani Nikula 2014-10-31 08:08:52 UTC
Oh, and does the USB device work fine even if the DP stops working?
Comment 4 Paulo Zanoni 2014-10-31 15:50:04 UTC
Also, can you reproduce the problem if you connect something to an USB port that is "distant" from the DP port?
Comment 5 Andrzej Pronobis 2014-10-31 17:22:29 UTC
> Does it make a difference what kind of USB device is connected to the port? 
There is a difference, but it is related to the use of USB 3.0. If I use a USB stick using 2.0, things work fine. Then, even a usb stick that is capable of using USB 3.0 will trigger the issue.

> Oh, and does the USB device work fine even if the DP stops working?
So far, yes. Although I did not test very extensively. It is detected and I can successfully mount the USB stick or use the USB ethernet card.

> Also, can you reproduce the problem if you connect something to an USB port that is "distant" from the DP port?
I cannot. The other USB 3.0 port works fine and does not trigger the issue.
Comment 6 Jani Nikula 2014-11-03 09:52:10 UTC
(In reply to Andrzej Pronobis from comment #0)
> however, if the external monitor is
> configured after the USB device is plugged in, then the following backtrace
> appears in dmesg:
> 
> [   57.685383] ------------[ cut here ]------------
> [   57.685396] WARNING: CPU: 0 PID: 1879 at
> /build/buildd/linux-3.16.0/drivers/gpu/drm/i915/intel_dp.c:3122
> intel_dp_link_down+0x1a9/0x230 [i915]()
> [   57.685397] Modules linked in: cdc_ether usbnet r8152 mii pci_stub
...
> [   57.688050] [drm:intel_dp_complete_link_train] *ERROR* failed to train
> DP, aborting

Please attach dmesg with drm.debug=14 module parameter set, from boot to this problem, i.e. plug a problematic USB3 device in first, then the DP cable.
Comment 7 Andrzej Pronobis 2014-11-21 21:19:31 UTC
Created attachment 109817 [details]
Dmesg output with drm.debug=14

The dmesg output was generated for the following events:
- clean boot with usb/dp disconnected with drm.debug=14 set
- usb 3.0 device is connected first
- DP monitor is connected second
- after some time, xrandr is used to enable the external display
Comment 8 Jani Nikula 2015-01-29 14:57:50 UTC
I'm afraid I don't have any further clues here. I can only ask you to give newer kernels a try. Oh, and does it make a difference if the laptop is operating on batter power vs. mains?
Comment 9 Jesse Barnes 2015-03-25 22:03:00 UTC
Hoping this was resolved and you forgot about it, otherwise please re-open.

I wonder if there's some electrical interference with the port you're using.  You said the other one works fine, so that could definitely be a problem.  Or as Jani is implying, it could be that the power draw from those two ports on that side of the machine is simply too much for the board design to handle.
Comment 10 Andrzej Pronobis 2015-03-25 22:18:55 UTC
The issue was not resolved, but it disappears when USB 3.0 is disabled as described in this post: 
http://askubuntu.com/questions/396021/what-is-causing-my-intel-7260-bluetooth-device-to-disconnect-when-i-unblock-it-w
using the bios XHCI PRE-BOOT MODE option.


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.