8086:0126 [Lenovo a ThinkPad X220] DisplayPort-2-DVI not hotplugging

Bug #1263681 reported by Marius Gedminas on 2013-12-23
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
xserver-xorg-video-intel (Ubuntu)
Low
Unassigned

Bug Description

WIth my Lenovo ThinkPad X220 I am unable to hotplug a DisplayPort-2-DVI cable, plug the DVI end into a monitor (Samsung SyncMaster 193p+), and plug the DP end into the ThinkPad, and it is detected within a reasonable time, with GNOME automatically extending my desktop. If I *unplug* the DP cable, the unplug is detected instantly.
I once waited ~5 minutes without running xrandr, and it actually detected the monitor and reconfigured.

WORKAROUND: If I run 'xrandr' in an xterm, the monitor is detected instantly and GNOME reconfigures the screen.

WORKAROUND: if I open System Preferences -> Display, it does an xrandr probe and instantly detects/reconfigures the screen.

WORKAROUND: if I plug the DP cable before I open the laptop lid to wake it up from S3 sleep, the external monitor is detected.

WORKAROUND: if I use a VGA cable instead of the DP -> DVI one, hotplug is detected within seconds.

ProblemType: Bug
DistroRelease: Ubuntu 13.10
Package: linux-image-extra-3.11.0-15-generic 3.11.0-15.23
ProcVersionSignature: Ubuntu 3.11.0-15.23-generic 3.11.10
Uname: Linux 3.11.0-15-generic x86_64
ApportVersion: 2.12.5-0ubuntu2.2
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: mg 2722 F.... pulseaudio
Date: Mon Dec 23 14:33:12 2013
EcryptfsInUse: Yes
HibernationDevice: RESUME=UUID=bf592a79-5f4e-486d-b69d-7525d492dcc6
InstallationDate: Installed on 2012-07-25 (515 days ago)
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Release amd64 (20120425)
Lsusb:
 Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
 Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
MachineType: LENOVO 4291WJF
MarkForUpload: True
ProcFB: 0 inteldrmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.11.0-15-generic root=UUID=36079681-53fc-4ca2-80ac-98321c07e8d2 ro quiet splash vt.handoff=7
RelatedPackageVersions:
 linux-restricted-modules-3.11.0-15-generic N/A
 linux-backports-modules-3.11.0-15-generic N/A
 linux-firmware 1.116
RfKill:
 0: phy0: Wireless LAN
  Soft blocked: no
  Hard blocked: no
SourcePackage: linux
UpgradeStatus: Upgraded to saucy on 2013-10-17 (66 days ago)
WifiSyslog:

dmi.bios.date: 05/31/2011
dmi.bios.vendor: LENOVO
dmi.bios.version: 8DET47WW (1.17 )
dmi.board.asset.tag: Not Available
dmi.board.name: 4291WJF
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:bvr8DET47WW(1.17):bd05/31/2011:svnLENOVO:pn4291WJF:pvrThinkPadX220:rvnLENOVO:rn4291WJF:rvrNotAvailable:cvnLENOVO:ct10:cvrNotAvailable:
dmi.product.name: 4291WJF
dmi.product.version: ThinkPad X220
dmi.sys.vendor: LENOVO
---
ApportVersion: 2.12.7-0ubuntu6
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: ubuntu 2713 F.... pulseaudio
CasperVersion: 1.336ubuntu1
CurrentDesktop: Unity
DistroRelease: Ubuntu 14.04
LiveMediaBuild: Ubuntu 14.04 LTS "Trusty Tahr" - Alpha amd64 (20140109)
Lsusb:
 Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
 Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 001 Device 003: ID 090c:1000 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) Flash Drive
 Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
MachineType: LENOVO 4291WJF
MarkForUpload: True
Package: linux (not installed)
ProcFB: 0 inteldrmfb
ProcKernelCmdLine: file=/cdrom/preseed/username.seed boot=casper initrd=/casper/initrd.lz quiet splash -- maybe-ubiquity
ProcVersionSignature: Ubuntu 3.13.0-1.16-generic 3.13.0-rc7
RelatedPackageVersions:
 linux-restricted-modules-3.13.0-1-generic N/A
 linux-backports-modules-3.13.0-1-generic N/A
 linux-firmware 1.119
RfKill:
 0: phy0: Wireless LAN
  Soft blocked: no
  Hard blocked: no
Tags: trusty
Uname: Linux 3.13.0-1-generic x86_64
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups: adm cdrom dip lpadmin plugdev sambashare sudo
dmi.bios.date: 07/18/2013
dmi.bios.vendor: LENOVO
dmi.bios.version: 8DET69WW (1.39 )
dmi.board.asset.tag: Not Available
dmi.board.name: 4291WJF
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:bvr8DET69WW(1.39):bd07/18/2013:svnLENOVO:pn4291WJF:pvrThinkPadX220:rvnLENOVO:rn4291WJF:rvrNotAvailable:cvnLENOVO:ct10:cvrNotAvailable:
dmi.product.name: 4291WJF
dmi.product.version: ThinkPad X220
dmi.sys.vendor: LENOVO

Marius Gedminas (mgedmin) wrote :

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
tags: added: bios-outdated-1.39-1.24
Changed in linux (Ubuntu):
importance: Undecided → Low
status: Confirmed → Incomplete
Marius Gedminas (mgedmin) wrote :

Managed to update the BIOS at last (by following the advice from http://www.floccinaucinihilipilification.net/blog/2011/10/2/updating-the-bios-of-a-thinkpad-x220-using-linux.html).

    $ sudo dmidecode -s bios-version && sudo dmidecode -s bios-release-date
    8DET69WW (1.39 )
    07/18/2013

DisplayPort hotplugging continues to not work.

Marius Gedminas, thank you for updating your BIOS. Could you please confirm this issue exists with the latest development release of Ubuntu? ISO images are available from http://cdimage.ubuntu.com/daily-live/current/ . If the issue remains, could you please run the following command in the development release from a Terminal (Applications->Accessories->Terminal), as it will automatically gather and attach updated debug information to this report:

apport-collect -p linux REPLACE-WITH-BUG-NUMBER

If reproducible, could you also please test the latest upstream kernel available (not the daily folder) following https://wiki.ubuntu.com/KernelMainlineBuilds ? It will allow additional upstream developers to examine the issue. Once you've tested the upstream kernel, please comment on which kernel version specifically you tested. If this bug is fixed in the mainline kernel, please add the following tags:
kernel-fixed-upstream
kernel-fixed-upstream-VERSION-NUMBER

where VERSION-NUMBER is the version number of the kernel you tested. For example:
kernel-fixed-upstream-v3.13-rc7

This can be done by clicking on the yellow circle with a black pencil icon next to the word Tags located at the bottom of the bug description. As well, please remove the tag:
needs-upstream-testing

If the mainline kernel does not fix this bug, please add the following tags:
kernel-bug-exists-upstream
kernel-bug-exists-upstream-VERSION-NUMBER

As well, please remove the tag:
needs-upstream-testing

Once testing of the upstream kernel is complete, please mark this bug's Status as Confirmed. Please let us know your results. Thank you for your understanding.

tags: added: latest-bios-1.39
removed: bios-outdated-1.39-1.24
tags: added: needs-upstream-testing regression-potential

apport information

tags: added: apport-collected trusty
description: updated

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

The bug still exists in yesterday's trusty daily image.

Specifically, test #1:
1. booted the daily image from USB
2. plugged in DisplayPort cable
3. nothing happened
4. ran xrandr in a terminal, external display was detected

Test #2:
1. plugged in DisplayPort cable
2. booted the daily image
3. had an extended desktop right from the beginning
4. unplugged the cable, desktop was reconfigured instantly
5. plugged the cable back, the hotplug was detected(!) and unity went back to extended desktop
6. unplugged the cable again, waited a bit longer
7. plugged the cable back in, nothing happened (and nothing continues to happen, several minutes later)

Will boot kernel v3.13-rc7-trusty from http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=N;O=D next

Marius Gedminas (mgedmin) wrote :

Problem persists with kernel 3.13.0-031300rc7-generic.

tags: added: kernel-bug-exists-upstream kernel-bug-exists-upstream-v3.13-rc7
removed: needs-upstream-testing
Changed in linux (Ubuntu):
status: Incomplete → Confirmed

Marius Gedminas, thank you for performing the requested test. I'm not convinced this is a kernel issue, but more of a xorg stack timing issue. I'll reassign for now, and if they find it's a kernel issue, we can take it from there. Despite this, did this problem not occur in a release prior to Saucy?

description: updated
summary: - DisplayPort hotplugging is not detected on a ThinkPad X220
+ 8086:0126 [Lenovo a ThinkPad X220] DisplayPort-2-DVI not hotplugging
affects: linux (Ubuntu) → xorg (Ubuntu)
Changed in xorg (Ubuntu):
status: Confirmed → Incomplete
Marius Gedminas (mgedmin) wrote :

I didn't have a DisplayPort cable before. I used an analog VGA cable and hotplug detection worked reliably.

I could boot a 12.04 LTS LiveCD and test it, if it's important.

I'd like to help debug this. It would help if I knew how hotplug detection is supposed to work, and what tools there are for me to see where it gets lost. Does the Intel video kernel driver do the detection? Does it poll or wait for an interrupt? How does the kernel communicate hotplug events to userspace? What tool do I run to watch for those events?

affects: xorg (Ubuntu) → xserver-xorg-video-intel (Ubuntu)
Marius Gedminas (mgedmin) wrote :
Download full text (10.1 KiB)

Tried talking about this on IRC (#intel-gfx on FreeNode). It was suggested to me to capture the kernel log after setting drm.debug to 0x5. That produced quite a lot of log output (70 thousand lines in about a minute), and after some trimming I got something that could perhaps be useful: https://gist.github.com/mgedmin/8686551

This is me unplugging the DisplayPort connector:

Jan 29 13:49:59 platonas kernel: [ 2041.110857] [drm:i915_hotplug_work_func], running encoder hotplug functions
Jan 29 13:49:59 platonas kernel: [ 2041.110861] [drm:i915_hotplug_work_func], Connector HDMI-A-1 (pin 4) received hotplug event.
Jan 29 13:49:59 platonas kernel: [ 2041.110863] [drm:i915_hotplug_work_func], Connector DP-1 (pin 4) received hotplug event.
Jan 29 13:49:59 platonas kernel: [ 2041.125448] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus dpb
Jan 29 13:49:59 platonas kernel: [ 2041.125457] [drm:intel_hpd_irq_event], [CONNECTOR:16:HDMI-A-1] status updated from 1 to 2
Jan 29 13:49:59 platonas kernel: [ 2041.125464] [drm:intel_hpd_irq_event], [CONNECTOR:20:DP-1] status updated from 2 to 2
Jan 29 13:49:59 platonas kernel: [ 2041.125466] [drm:drm_sysfs_hotplug_event], generating hotplug event

This is me plugging it back in (it wasn't detected by gnome-shell; xrandr --current didn't see it):

Jan 29 13:50:05 platonas kernel: [ 2046.777640] [drm:i915_hotplug_work_func], running encoder hotplug functions
Jan 29 13:50:05 platonas kernel: [ 2046.777655] [drm:i915_hotplug_work_func], Connector HDMI-A-1 (pin 4) received hotplug event.
Jan 29 13:50:05 platonas kernel: [ 2046.777661] [drm:i915_hotplug_work_func], Connector DP-1 (pin 4) received hotplug event.
Jan 29 13:50:05 platonas kernel: [ 2046.778046] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus dpb
Jan 29 13:50:05 platonas kernel: [ 2046.778051] [drm:intel_hpd_irq_event], [CONNECTOR:16:HDMI-A-1] status updated from 2 to 2
Jan 29 13:50:05 platonas kernel: [ 2046.780633] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x7143003f
Jan 29 13:50:05 platonas kernel: [ 2046.789040] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x7143003f
Jan 29 13:50:05 platonas kernel: [ 2046.797004] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x7143003f
Jan 29 13:50:05 platonas kernel: [ 2046.802468] [drm:intel_hpd_irq_event], [CONNECTOR:20:DP-1] status updated from 2 to 2
Jan 29 13:50:05 platonas kernel: [ 2046.830695] crtc 1 : v 7 p(0,-23)@ 2046.796294 -> 2046.796779 [e 2 us, 0 rep]

This is me running xrandr to force monitor detection:

Jan 29 13:50:13 platonas kernel: [ 2054.453968] [drm:drm_mode_getconnector], [CONNECTOR:7:?]
Jan 29 13:50:13 platonas kernel: [ 2054.453976] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:7:LVDS-1]
Jan 29 13:50:13 platonas kernel: [ 2054.454000] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:7:LVDS-1] probed modes :
Jan 29 13:50:13 platonas kernel: [ 2054.454005] [drm:drm_mode_debug_printmodeline], Modeline 10:"1366x768" 60 74800 1366 1414 1446 1578 768 770 775 790 0x48 0xa
Jan 29 13:50:13 platonas kernel: [ 2054.454022] [drm:drm_mode_getconnector], [CONNECTOR:7:?]
Jan 29 13:50:13 platonas kernel: [ 2054.454571...

Marius Gedminas (mgedmin) wrote :

Chris Wilson said this on IRC:

"The issue is that after the hotplug interrupt is sent by the hardware, the monitor is not yet ready to respond to the DDC probes and generates a NAK instead - this leads us to conclude that there is nothing on the other end of the connector"

so it looks like a genuine upstream bug in the Intel graphics kernel driver.

tags: added: needs-upstream-testing
removed: kernel-bug-exists-upstream
Launchpad Janitor (janitor) wrote :

[Expired for xserver-xorg-video-intel (Ubuntu) because there has been no activity for 60 days.]

Changed in xserver-xorg-video-intel (Ubuntu):
status: Incomplete → Expired
Changed in xserver-xorg-video-intel (Ubuntu):
status: Expired → New
pureblood (freeseek) wrote :
Marius Gedminas (mgedmin) wrote :

A simpler workaround: pressing Fn-Home/Fn-End (screen brightness control keys) after plugging in the DisplayPort cable also triggers detection.

To post a comment you must log in.