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

Bug #1903969 reported by You-Sheng Yang on 2020-11-12
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
HWE Next
Undecided
Unassigned
linux (Ubuntu)
Status tracked in Hirsute
Focal
Undecided
Unassigned
Groovy
Undecided
Unassigned
Hirsute
High
You-Sheng Yang
linux-oem-5.10 (Ubuntu)
Status tracked in Hirsute
Focal
High
You-Sheng Yang
Groovy
Undecided
Unassigned
Hirsute
Undecided
Unassigned
linux-oem-5.6 (Ubuntu)
Status tracked in Hirsute
Focal
Undecided
Unassigned
Groovy
Undecided
Unassigned
Hirsute
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)

You-Sheng Yang (vicamo) wrote :
tags: added: oem-priority originate-from-1901008 somerville
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.

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
You-Sheng Yang (vicamo) on 2020-11-17
Changed in linux (Ubuntu Hirsute):
status: Incomplete → In Progress
importance: Undecided → High
assignee: nobody → You-Sheng Yang (vicamo)
You-Sheng Yang (vicamo) on 2020-11-24
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
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
You-Sheng Yang (vicamo) on 2020-11-24
description: updated
description: updated
Timo Aaltonen (tjaalton) on 2020-11-25
Changed in linux-oem-5.10 (Ubuntu Focal):
status: In Progress → Fix Committed
Changed in linux (Ubuntu Groovy):
status: New → Won't Fix

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
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) on 2020-11-30
tags: added: verification-done-focal
removed: verification-needed-focal
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
You-Sheng Yang (vicamo) wrote :

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

koba (kobako) on 2020-12-31
tags: added: originate-from-1907526
koba (kobako) on 2020-12-31
tags: added: originate-from-1894066
tags: added: originate-from-1895638
Timo Aaltonen (tjaalton) on 2021-01-05
Changed in linux-oem-5.10 (Ubuntu Focal):
status: Fix Committed → Fix Released
koba (kobako) on 2021-01-11
tags: added: originate-from-1892304
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers