Bug 88919

Summary: i915: "too many retries" error when using an external monitor with HP EliteBook 820 G1
Product: DRI Reporter: Eugene A. Shatokhin <eugene.shatokhin>
Component: DRM/IntelAssignee: Intel GFX Bugs mailing list <intel-gfx-bugs>
Status: CLOSED DUPLICATE QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: normal    
Priority: medium CC: intel-gfx-bugs
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: HSW i915 features: display/DP
Attachments:
Description Flags
dmesg - kernel 3.14.31
none
dmesg - kernel 3.18.5
none
The output of dmidecode
none
The output of lspci
none
dmesg - with patch "drm/dp: Use large transactions for I2C over AUX"
none
dmesg before switching to the external monitor (kernel 4.0-rc3)
none
dmesg after switching to the external monitor (kernel 4.0-rc3)
none
kernel 4.3 - dmesg before switching to the external monitor
none
kernel 4.3 - part of dmesg after switching to the external monitor
none
kernel-4.3 Xorg.0.log - just in case none

Description Eugene A. Shatokhin 2015-02-02 09:13:28 UTC
Created attachment 113046 [details]
dmesg - kernel 3.14.31

* Laptop model: HP EliteBook 820 G1
* Linux distribution: ROSA R5 KDE x86_64
* Graphics: VGA compatible controller [0300]: Intel Corporation Haswell-ULT Integrated Graphics Controller [8086:0a16] (rev 09)
* Arch: x86_64
* kernel: tested with 3.14.31 and 3.18.5, the problem appears in both cases.
* xorg-server: 1.15.2
* xf86-video-intel: 2.21.15
* mesa: 10.4.2
* libdrm: 2.4.58

When I connect an external monitor to this laptop with a VGA-to-VGA cable, the monitor is usually (but not always) recognized and becomes available for the system. I can move some app. windows there, etc. 

However, if I try to make it a primary output using the GUI tools or press function keys (Fn-F4 in this case) one or more times to change the output mode, both the laptop's screen and the external monitor flicker and then no output goes to the latter.

The following errors appear in system log (dmesg):
[drm:intel_dp_aux_native_read] *ERROR* too many retries, giving up
[drm:intel_dp_aux_native_read] *ERROR* too many retries, giving up

This was observed with kernel 3.14.31. 
With kernel 3.18.5, the problem also shows up each time, the errors are similar.

Sometimes the errors appear right after I plug in the external monitor - and it cannot be used then - sometimes after I press the function keys as described above.

Tried this with 2 different external monitors (Samsung SyncMaster 943, NEC MultiSync 2190UXp) and 2 different cables. The results are the same.

More info about the hardware and the logs:
* with kernel 3.14.31:
http://hw.rosalinux.ru/index.php?probe=7771e305d0
* with kernel 3.18.5:
http://hw.rosalinux.ru/index.php?probe=e6957016cb

The monitors and the cables themselves are OK: I can use them with another laptop with the same kernels without problems.

I also tries increasing the retry limit from 7 to 32 in i915 in the kernel 3.14.31, similar to this commit in the mainline kernel: 19a93f042fc241ecdf98543cedfe7c171f8cdf53 "drm/dp: retry AUX transactions 32 times (v1.1)"
No visible effect, the problem persists.

Any ideas?
Comment 1 Eugene A. Shatokhin 2015-02-02 09:14:01 UTC
Created attachment 113047 [details]
dmesg - kernel 3.18.5
Comment 2 Eugene A. Shatokhin 2015-02-02 09:14:36 UTC
Created attachment 113048 [details]
The output of dmidecode
Comment 3 Eugene A. Shatokhin 2015-02-02 09:14:55 UTC
Created attachment 113049 [details]
The output of lspci
Comment 4 Jani Nikula 2015-02-03 12:26:31 UTC
Please try this patch:
http://mid.gmane.org/1422373429-10137-1-git-send-email-simon.farnsworth@onelan.co.uk
Comment 5 Eugene A. Shatokhin 2015-02-04 05:58:01 UTC
Created attachment 113146 [details]
dmesg - with patch "drm/dp: Use large transactions for I2C over AUX"

Thanks for a prompt reply!

I applied that patch on top of kernel 3.18.5, tried on that laptop - no effect. Same behaviour, same errors.

dmesg is attached.

In case other logs are needed, they are here: http://hw.rosalinux.ru/index.php?probe=17d5745ffe
Comment 6 Eugene A. Shatokhin 2015-03-15 18:07:54 UTC
I built vanilla kernel 4.0-rc3 on that system - the problem is still there. 

The logs (dmesg) before and after I tried to switch to the external monitor will be attached below.
Comment 7 Eugene A. Shatokhin 2015-03-15 18:08:54 UTC
Created attachment 114322 [details]
dmesg before switching to the external monitor (kernel 4.0-rc3)
Comment 8 Eugene A. Shatokhin 2015-03-15 18:09:34 UTC
Created attachment 114323 [details]
dmesg after switching to the external monitor (kernel 4.0-rc3)
Comment 9 Jani Nikula 2015-10-23 11:50:51 UTC
We've fixed plenty of issues with DP aux/i2c-over-aux lately, presuming we've fixed this one too. Please reopen if the problem persists with latest kernels.
Comment 10 Eugene A. Shatokhin 2015-11-08 15:45:22 UTC
(In reply to Jani Nikula from comment #9)
> We've fixed plenty of issues with DP aux/i2c-over-aux lately, presuming
> we've fixed this one too. Please reopen if the problem persists with latest
> kernels.

Unfortunately, the problem is still there even with kernel 4.3 vanilla.

After the system boots, the external monitor works, I can drag windows to it, etc. But when I try to make it the main output, the screen flickers a bit and the external monitor can no longer be used.

I will attach the new logs below.

"too many retries, giving up" message is output several times there.

Additionally, when I try to switch to the external monitor, there is the following warning, not sure if it is related:

-------------------------
[drm:intel_pipe_config_compare [i915]] *ERROR* mismatch in has_drrs (expected 1, found 0)
------------[ cut here ]------------
WARNING: CPU: 2 PID: 6939 at /home/alina/distrib/kernel/linux-4.3/drivers/gpu/drm/i915/intel_display.c:12700 intel_atomic_commit+0xd65/0x1350 [i915]()
pipe state doesn't match!
Modules linked in: rfcomm nf_log_ipv4 nf_log_common xt_LOG xt_recent xt_comment ipt_REJECT nf_reject_ipv4 xt_addrtype bridge stp llc xt_mark iptable_mangle xt_tcpudp xt_CT iptable_raw xt_multiport nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_nat_tftp nf_nat_snmp_basic nf_conntrack_snmp nf_nat_sip nf_nat_pptp nf_nat_proto_gre nf_nat_irc nf_nat_h323 nf_nat_ftp nf_nat_amanda ts_kmp nf_conntrack_amanda nf_nat nf_conntrack_sane nf_conntrack_tftp nf_conntrack_sip nf_conntrack_proto_udplite nf_conntrack_proto_sctp nf_conntrack_pptp nf_conntrack_proto_gre nf_conntrack_netlink nfnetlink nf_conntrack_netbios_ns nf_conntrack_broadcast nf_conntrack_irc nf_conntrack_h323 nf_conntrack_ftp nf_conntrack iptable_filter af_packet bnep ppdev hp_wmi iTCO_wdt iTCO_vendor_support sparse_keymap btusb intel_rapl
 btrtl iosf_mbi btbcm x86_pkg_temp_thermal intel_powerclamp coretemp btintel kvm_intel bluetooth rfkill kvm uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_core v4l2_common videodev media crct10dif_pclmul crc32_pclmul crc32c_intel usblp aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd rtsx_pci_ms microcode memstick joydev serio_raw tpm_infineon parport_pc parport snd_hda_codec_hdmi snd_hda_codec_idt snd_hda_codec_generic snd_hda_intel snd_hda_codec intel_smartconnect snd_hda_core mei_me tpm_tis mei tpm hp_wireless i2c_i801 snd_hwdep snd_pcm snd_timer snd soundcore hp_accel e1000e lis3lv02d input_polldev shpchp ptp pps_core lpc_ich sch_fq_codel ip_tables x_tables hid_generic usbhid hid rtsx_pci_sdmmc mmc_core xhci_pci ehci_pci xhci_hcd ehci_hcd rtsx_pci i915 i2c_algo_bit
 drm_kms_helper usbcore usb_common drm i2c_core wmi video binfmt_misc ipv6 autofs4
CPU: 2 PID: 6939 Comm: X Tainted: G        W       4.3.0 #1
Hardware name: Hewlett-Packard HP EliteBook 820 G1/1991, BIOS L71 Ver. 01.30 12/09/2014
 ffffffffa0276400 ffff8800a2ddfb58 ffffffff813c1d39 ffff8800a2ddfba0
 ffff8800a2ddfb90 ffffffff81071a56 ffff8800a76c5c00 ffff880137379000
 0000000000000000 ffff8800b0941a00 ffff8800a76c6400 ffff8800a2ddfbf0
Call Trace:
 [<ffffffff813c1d39>] dump_stack+0x4b/0x72
 [<ffffffff81071a56>] warn_slowpath_common+0x86/0xc0
 [<ffffffff81071adc>] warn_slowpath_fmt+0x4c/0x50
 [<ffffffffa0215885>] intel_atomic_commit+0xd65/0x1350 [i915]
 [<ffffffffa00c0974>] ? drm_atomic_check_only+0x1d4/0x590 [drm]
 [<ffffffffa00c0d67>] drm_atomic_commit+0x37/0x60 [drm]
 [<ffffffffa017b844>] drm_atomic_helper_set_config+0x1c4/0x430 [drm_kms_helper]
 [<ffffffffa00b0d02>] drm_mode_set_config_internal+0x62/0x100 [drm]
 [<ffffffffa00b4ca9>] drm_mode_setcrtc+0x189/0x4d0 [drm]
 [<ffffffffa00a6462>] drm_ioctl+0x122/0x4c0 [drm]
 [<ffffffffa00b4b20>] ? drm_mode_setplane+0x1b0/0x1b0 [drm]
 [<ffffffff811d450a>] do_vfs_ioctl+0x2ba/0x490
 [<ffffffff8137d2a9>] ? tomoyo_file_ioctl+0x19/0x20
 [<ffffffff8136e643>] ? security_file_ioctl+0x43/0x60
 [<ffffffff811d4759>] SyS_ioctl+0x79/0x90
 [<ffffffff816b6ff6>] entry_SYSCALL_64_fastpath+0x16/0x75
---[ end trace 89a826ca83af0743 ]---
-------------------------
Comment 11 Eugene A. Shatokhin 2015-11-08 15:49:44 UTC
Created attachment 119481 [details]
kernel 4.3 - dmesg before switching to the external monitor

Boot option drm.debug=0x06 was used.
Comment 12 Eugene A. Shatokhin 2015-11-08 15:52:19 UTC
Created attachment 119482 [details]
kernel 4.3 - part of dmesg after switching to the external monitor

When I tried to switch to the external monitor, dmesg output this.
Comment 13 Eugene A. Shatokhin 2015-11-08 15:53:54 UTC
Created attachment 119483 [details]
kernel-4.3 Xorg.0.log - just in case
Comment 14 Andre Rummler 2015-12-09 11:37:21 UTC
Similar bug report on Ubuntu bug tracker:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1300914?comments=all
Comment 15 Eugene A. Shatokhin 2015-12-10 12:56:21 UTC
(In reply to Andre Rummler from comment #14)
> Similar bug report on Ubuntu bug tracker:
> 
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1300914?comments=all

By the way, the "workaround" mentioned in that bug report works for me. I mean, I've recently bought a DisplayPort-to-VGA adapter and connected the external display to the laptop via DisplayPort with it. Seems to work OK so far on kernel 4.1.13.
Comment 16 yann 2016-06-08 17:30:24 UTC
Consolidating "clock recovery fails with too many full/voltage retries" bugs into one bug
So continue to track this in bug 96436

*** This bug has been marked as a duplicate of bug 96436 ***

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.