failed to boot to GUI: i915 0000:00:02.0: [drm] *ERROR* Link Training Unsuccessful

Bug #1903969 reported by You-Sheng Yang
24
This bug affects 4 people
Affects Status Importance Assigned to Milestone
HWE Next
Fix Released
Undecided
Unassigned
linux (Ubuntu)
Fix Released
High
You-Sheng Yang
Focal
Invalid
Undecided
Unassigned
Groovy
Won't Fix
Undecided
Unassigned
Hirsute
Fix Released
High
You-Sheng Yang
linux-oem-5.10 (Ubuntu)
Invalid
Undecided
Unassigned
Focal
Fix Released
High
You-Sheng Yang
Groovy
Invalid
Undecided
Unassigned
Hirsute
Invalid
Undecided
Unassigned
linux-oem-5.6 (Ubuntu)
Invalid
Undecided
Unassigned
Focal
Won't Fix
Undecided
Unassigned
Groovy
Invalid
Undecided
Unassigned
Hirsute
Invalid
Undecided
Unassigned

Bug Description

[SRU Justification]

[Impact]

On platforms supported DP tunneling over USB 3.2 or so, a Retimer is
required on the host side to cover insertion loss. On such platforms the
rtimer firmware maybe configured to use LTTPR (Link Training Tunable PHY
Repeater) non-transparent mode only, which is only supported in drm-tip
currently. Without LTTPR support, link training may fail with following
error messages depending on the data path configuration:

  i915 0000:00:02.0: [drm] *ERROR* Link Training Unsuccessful
  i915 0000:00:02.0: [drm] *ERROR* CPU pipe A FIFO underrun

[Fix]

Patchset https://www.spinics.net/lists/intel-gfx/msg248700.html
("drm/i915: Add support for LTTPR non-transparent link training mode")
is required to fix this issue. It has been landed to drm-tip and will
only be merged to mainline in v5.11.

Patchset https://patchwork.freedesktop.org/series/76993/ ("Plumb crtc
state to link training code") is included for link training functions
prototype changes.

[Test Case]

On Dell OptiPlex and WD19 docking station, use following steps to verify:
1. disconnect WD19 from OptiPlex, disconnect OptiPlex's power
2. attach OptiPlex's power cord
3. attach WD19's power cord
4. attach DP to WD19
5. attach WD19 to OptiPlex
6. boot up and check if boot to GUI directly
7. `dmesg` and check if aforementioned DRM link training error appears

[Where problems could occur]

The second patchset pulled for dependency doesn't have too much
effective changes but refactoring some translation functions, so very
unlikely to have regressions.

For the major part, LTTPR support, when LTTPR is either not detected or
not supported, it will fall back to use transparent mode as it was.
Otherwise, DP Standard recommends to use LTTPR non-transparent mode for
link training, so this should be the right way to have best hardware
support.

========== original bug description ==========

[Summary]
When the monitor ONLY is connected to the WD19 (DP port) and WD19 is connected to the type c port than boot the machine, the monitor shows no video output after loaded i915.

[Reproduce Steps]
1. connect power cable of WD19
2. connect DP cable from monitor to WD19
3. connect power cable to target system.
4. connect type c cable from WD19 to target system
5. boot up

[Results]
Expected: video output as there is only one monitor connected.
Actual: No video output.

ProblemType: Bug
DistroRelease: Ubuntu 20.04
Package: linux-image-5.6.0-1033-oem 5.6.0-1033.35
ProcVersionSignature: Ubuntu 5.6.0-1033.35-oem 5.6.19
Uname: Linux 5.6.0-1033-oem x86_64
ApportVersion: 2.20.11-0ubuntu27.11
Architecture: amd64
CasperMD5CheckResult: skip
Date: Thu Nov 12 05:11:11 2020
DistributionChannelDescriptor:
 # This is the distribution channel descriptor for the OEM CDs
 # For more information see http://wiki.ubuntu.com/DistributionChannelDescriptor
 canonical-oem-somerville-focal-amd64-20200502-85+fossa-metapod+X40
InstallationDate: Installed on 2020-11-03 (9 days ago)
InstallationMedia: Ubuntu 20.04 "Focal" - Build amd64 LIVE Binary 20200502-05:58
SourcePackage: linux-signed-oem-5.6
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
You-Sheng Yang (vicamo) wrote :
tags: added: oem-priority originate-from-1901008 somerville
Revision history for this message
You-Sheng Yang (vicamo) wrote :

$ git bisect log
git bisect start
# old: [f8394f232b1eab649ce2df5c5f15b0e528c92091] Linux 5.10-rc3
git bisect old f8394f232b1eab649ce2df5c5f15b0e528c92091
# new: [c0f98d2f8b076bf3e3183aa547395f919c943a14] Merge tag 'drm-misc-next-2020-11-05' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
git bisect new c0f98d2f8b076bf3e3183aa547395f919c943a14
# old: [3cea11cd5e3b00d91caf0b4730194039b45c5891] Linux 5.10-rc2
git bisect old 3cea11cd5e3b00d91caf0b4730194039b45c5891
# old: [6a6e5988a2657cd0c91f6f1a3e7d194599248b6d] drm/ttm: replace last move_notify with delete_mem_notify
git bisect old 6a6e5988a2657cd0c91f6f1a3e7d194599248b6d
# new: [f566fdcd6cc49a9d5b5d782f56e3e7cb243f01b8] drm/i915: Force VT'd workarounds when running as a guest OS
git bisect new f566fdcd6cc49a9d5b5d782f56e3e7cb243f01b8
# old: [b50b7991b739c6d63658e3324a01eaa0fafe8b7f] drm/i915/dg1: add more PCI ids
git bisect old b50b7991b739c6d63658e3324a01eaa0fafe8b7f
# old: [0a5991f5d022235ba085001e2a3926f83a0aed1b] drm/i915: Simplify the link training functions
git bisect old 0a5991f5d022235ba085001e2a3926f83a0aed1b
# new: [0dac17af0ab4e55b6b18a762141f255d3eea1e37] drm/i915/dg1: Enable DPLL for DG1
git bisect new 0dac17af0ab4e55b6b18a762141f255d3eea1e37
# new: [055f8458d95a38c20e8360634255f684378179eb] drm/i915: Force DPCD backlight mode for BOE 2270 panel
git bisect new 055f8458d95a38c20e8360634255f684378179eb
# old: [7b2a4ab8b0ef2a6dbec0b15d2cabf5a9e7acdf4c] drm/i915: Switch to LTTPR transparent mode link training
git bisect old 7b2a4ab8b0ef2a6dbec0b15d2cabf5a9e7acdf4c
# new: [b30edfd8d0b4b22f9c17c208064b39a3d93e6971] drm/i915: Switch to LTTPR non-transparent mode link training
git bisect new b30edfd8d0b4b22f9c17c208064b39a3d93e6971
# first new commit: [b30edfd8d0b4b22f9c17c208064b39a3d93e6971] drm/i915: Switch to LTTPR non-transparent mode link training

So this, https://patchwork.freedesktop.org/series/82449/ , patchset is the fix.

* b30edfd8d0b4 drm/i915: Switch to LTTPR non-transparent mode link training
* 7b2a4ab8b0ef drm/i915: Switch to LTTPR transparent mode link training
* 9782f52ab5d6 drm/dp: Add LTTPR helpers
* c43027a9a375 drm/i915: Factor out a helper to disable the DPCD training pattern
* 0a5991f5d022 drm/i915: Simplify the link training functions
* 6777a855d66d drm/i915: Fix DP link training pattern mask

These six commits are required with additional dependency to https://patchwork.freedesktop.org/series/76993/ as well. Verified by cherry-picking these to a Ubuntu-5.10-5.10.0-3.4 kernel.

Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote : Missing required logs.

This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:

apport-collect 1903969

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
Revision history for this message
You-Sheng Yang (vicamo) wrote :
You-Sheng Yang (vicamo)
Changed in linux (Ubuntu Hirsute):
status: Incomplete → In Progress
importance: Undecided → High
assignee: nobody → You-Sheng Yang (vicamo)
You-Sheng Yang (vicamo)
Changed in linux-oem-5.10 (Ubuntu Groovy):
status: New → Invalid
Changed in linux-oem-5.6 (Ubuntu Groovy):
status: New → Invalid
Changed in linux-oem-5.6 (Ubuntu Hirsute):
status: New → Invalid
Changed in linux-oem-5.10 (Ubuntu Hirsute):
status: New → Invalid
Revision history for this message
You-Sheng Yang (vicamo) wrote :
Changed in linux-oem-5.10 (Ubuntu Focal):
assignee: nobody → You-Sheng Yang (vicamo)
importance: Undecided → High
status: New → In Progress
Changed in linux (Ubuntu Focal):
status: New → Invalid
description: updated
Revision history for this message
You-Sheng Yang (vicamo) wrote :
You-Sheng Yang (vicamo)
description: updated
description: updated
Timo Aaltonen (tjaalton)
Changed in linux-oem-5.10 (Ubuntu Focal):
status: In Progress → Fix Committed
Changed in linux (Ubuntu Groovy):
status: New → Won't Fix
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-focal' to 'verification-done-focal'. If the problem still exists, change the tag 'verification-needed-focal' to 'verification-failed-focal'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-focal
Revision history for this message
David Chen (david.chen) wrote :

Kernel in proposed solved the problem, system can now boot correctly with monitor connected on WD19 docking, with docking connected on system TBT port. Done 10 cold boot and 10 warm boot cycles, all pass.

You-Sheng Yang (vicamo)
tags: added: verification-done-focal
removed: verification-needed-focal
Revision history for this message
Timo Aaltonen (tjaalton) wrote :

oem-5.6 will be eol in two months, most likely too late to get a big backport in it

Changed in linux-oem-5.6 (Ubuntu Focal):
status: New → Won't Fix
Revision history for this message
You-Sheng Yang (vicamo) wrote :

These patches have been merged into mainline via drm-next-2020-12-18 for v5.11.

koba (kobako)
tags: added: originate-from-1907526
koba (kobako)
tags: added: originate-from-1894066
tags: added: originate-from-1895638
Timo Aaltonen (tjaalton)
Changed in linux-oem-5.10 (Ubuntu Focal):
status: Fix Committed → Fix Released
koba (kobako)
tags: added: originate-from-1892304
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (20.7 KiB)

This bug was fixed in the package linux - 5.10.0-14.15

---------------
linux (5.10.0-14.15) hirsute; urgency=medium

  * hirsute/linux: 5.10.0-14.15 -proposed tracker (LP: #1913724)

  * Restore palm ejection on multi-input devices (LP: #1913520)
    - HID: multitouch: Apply MT_QUIRK_CONFIDENCE quirk for multi-input devices

  * intel-hid is not loaded on new Intel platform (LP: #1907160)
    - platform/x86: intel-hid: add Rocket Lake ACPI device ID

  * Hirsute update: v5.10.11 upstream stable release (LP: #1913430)
    - scsi: target: tcmu: Fix use-after-free of se_cmd->priv
    - mtd: rawnand: gpmi: fix dst bit offset when extracting raw payload
    - mtd: rawnand: nandsim: Fix the logic when selecting Hamming soft ECC engine
    - i2c: tegra: Wait for config load atomically while in ISR
    - i2c: bpmp-tegra: Ignore unknown I2C_M flags
    - platform/x86: ideapad-laptop: Disable touchpad_switch for ELAN0634
    - ALSA: seq: oss: Fix missing error check in snd_seq_oss_synth_make_info()
    - ALSA: hda/realtek - Limit int mic boost on Acer Aspire E5-575T
    - ALSA: hda/via: Add minimum mute flag
    - crypto: xor - Fix divide error in do_xor_speed()
    - dm crypt: fix copy and paste bug in crypt_alloc_req_aead
    - ACPI: scan: Make acpi_bus_get_device() clear return pointer on error
    - btrfs: don't get an EINTR during drop_snapshot for reloc
    - btrfs: do not double free backref nodes on error
    - btrfs: fix lockdep splat in btrfs_recover_relocation
    - btrfs: don't clear ret in btrfs_start_dirty_block_groups
    - btrfs: send: fix invalid clone operations when cloning from the same file
      and root
    - fs: fix lazytime expiration handling in __writeback_single_inode()
    - pinctrl: ingenic: Fix JZ4760 support
    - mmc: core: don't initialize block size from ext_csd if not present
    - mmc: sdhci-of-dwcmshc: fix rpmb access
    - mmc: sdhci-xenon: fix 1.8v regulator stabilization
    - mmc: sdhci-brcmstb: Fix mmc timeout errors on S5 suspend
    - dm: avoid filesystem lookup in dm_get_dev_t()
    - dm integrity: fix a crash if "recalculate" used without "internal_hash"
    - dm integrity: conditionally disable "recalculate" feature
    - drm/atomic: put state on error path
    - drm/syncobj: Fix use-after-free
    - drm/amdgpu: remove gpu info firmware of green sardine
    - drm/amd/display: DCN2X Find Secondary Pipe properly in MPO + ODM Case
    - drm/i915/gt: Prevent use of engine->wa_ctx after error
    - drm/i915: Check for rq->hwsp validity after acquiring RCU lock
    - ASoC: Intel: haswell: Add missing pm_ops
    - ASoC: rt711: mutex between calibration and power state changes
    - SUNRPC: Handle TCP socket sends with kernel_sendpage() again
    - HID: sony: select CONFIG_CRC32
    - dm integrity: select CRYPTO_SKCIPHER
    - x86/hyperv: Fix kexec panic/hang issues
    - scsi: ufs: Relax the condition of UFSHCI_QUIRK_SKIP_MANUAL_WB_FLUSH_CTRL
    - scsi: ufs: Correct the LUN used in eh_device_reset_handler() callback
    - scsi: qedi: Correct max length of CHAP secret
    - scsi: scsi_debug: Fix memleak in scsi_debug_init()
    - scsi: sd: Suppress spurious errors when WRITE SAME is being disabled
    - riscv: ...

Changed in linux (Ubuntu Hirsute):
status: In Progress → Fix Released
Timo Aaltonen (tjaalton)
Changed in hwe-next:
status: New → Fix Released
Revision history for this message
Frédéric Grosshans (fgrosshans) wrote (last edit ):

[it now (2022-09-23) works, same kernel, so thanks to whomever fixed the bug and feel free to ignor the message below]

I seem to have the same problem in Jammy with the kernel 5.15.0-47-generic and with the latest firmware updates. The only difference is dmesg speak of pipe B instead of pipe A:

[ 509.965244] i915 0000:00:02.0: [drm] *ERROR* Link Training Unsuccessful
[ 509.990694] i915 0000:00:02.0: [drm] *ERROR* CPU pipe B FIFO underrun
[ 510.270856] i915 0000:00:02.0: [drm] *ERROR* Link Training Unsuccessful
[ ....]

Is that actually the same bug, or should I open a new one ?

Revision history for this message
MDarweash (mahmoud-darweash) wrote :

I Can confirm the same behavior on my machine

5.15.0-53-generic #59-Ubuntu SMP Mon Oct 17 18:53:30 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

I get

i915 0000:00:02.0: [drm] *ERROR* Sending link address failed with -5

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.