ThinkPad T14s external display not working on ThinkPad USB-C Dock Gen2

Bug #1908139 reported by Andreas Herrmann
32
This bug affects 6 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

laptop: ThinkPad T14s Gen 1 - AMD Ryzen 7 PRO 4750U
docking station: ThinkPad USB-C Dock 2. Gen.
external display: NE MultiSync EA275UHD
OS: Ubuntu 20.10 - kernel 5.8.0

Plugging the external display into one of the docking station's two DisplayPort connectors leads to the screen resolution changing on the laptop's builtin display and the external display waking up but showing no picture and displaying "no-signal" after a bit.

Plugging the external display into the docking station's HDMI connector leads to no visible reaction on either the external nor the builtin display.

Plugging the external display into the laptop's builtin HDMI connector works as expected. The external display is recognized and shows an image.

I have recorded the output on `dmesg` during the steps mentioned above and inserted explanations using `echo MSG >/dev/kmsg`. The output follows at the end of the message. I believe `ubuntu-bug` should also attach the full log.

All above modes of connection work as expected with the same laptop, dock, and display on Windows 10 (installed as dual boot along side Ubuntu).
All above modes of connection also work as expected with an older laptop (ThinkPad T470s - Ubuntu 20.04 - kernel 5.4.0), and the same dock and display.
This leads me to believe that this is not a hardware issue.

The following bug seems related, but seems to have been observed on faulty hardware according to its author. Therefore, I decided to open a separate bug report. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1899336

```
[ 343.372511] plugging DisplayPort into dock port 1
[ 352.666113] [drm] DP Alt mode state on HPD: 1
[ 352.749192] [drm] DM_MST: starting TM on aconnector: 000000002105a317 [id: 75]
[ 352.858482] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 352.888400] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 352.892555] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 352.896719] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 352.900876] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 352.905596] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 352.910323] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 352.914485] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 377.353566] plugged in - no signal
[ 396.728970] unplugging
[ 403.001418] [drm] DM_MST: stopping TM on aconnector: 000000002105a317 [id: 75]
[ 415.576397] unplugged
[ 431.500729] plugging DisplayPort into dock port 2
[ 437.607724] [drm] DP Alt mode state on HPD: 1
[ 437.681116] [drm] DM_MST: starting TM on aconnector: 000000002105a317 [id: 75]
[ 437.790303] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 437.820138] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 437.824305] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 437.828462] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 437.832619] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 437.837029] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 437.841984] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 437.846144] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 458.999849] plugged in - no signal
[ 465.702949] unplugging
[ 476.127418] [drm] DM_MST: stopping TM on aconnector: 000000002105a317 [id: 75]
[ 476.956491] [drm] Failed to add display topology, DTM TA is not initialized.
[ 488.792533] unplugged
[ 529.801179] plugging HDMI into dock
[ 536.721076] [drm] DP Alt mode state on HPD: 1
[ 536.792947] [drm] DM_MST: starting TM on aconnector: 000000002105a317 [id: 75]
[ 536.901958] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 536.906123] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 536.910288] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 536.914611] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 536.919568] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 536.923725] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 536.927888] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 536.932047] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 536.936451] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 536.941486] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 536.945651] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 536.949808] [drm] amdgpu_dm_irq_schedule_work FAILED src 9
[ 537.010093] [drm:drm_dp_send_dpcd_read [drm_kms_helper]] *ERROR* mstb 00000000271ba325 port 1: DPCD read on addr 0x60 for 1 bytes NAKed
[ 592.844147] plugged in - display does not react
[ 597.998141] unplugging
[ 604.657060] [drm] DM_MST: stopping TM on aconnector: 000000002105a317 [id: 75]
[ 612.058516] unplugged
[ 630.409181] plugging HDMI into laptop
[ 637.125592] [drm] Failed to add display topology, DTM TA is not initialized.
[ 639.077839] [drm] Failed to add display topology, DTM TA is not initialized.
[ 639.192248] [drm] Failed to add display topology, DTM TA is not initialized.
[ 683.221820] plugged in - working
[ 690.347738] unplugging
[ 694.212298] [drm] Failed to add display topology, DTM TA is not initialized.
[ 725.466488] unplugged
```

ProblemType: Bug
DistroRelease: Ubuntu 20.10
Package: linux-image-5.8.0-33-generic 5.8.0-33.36
ProcVersionSignature: Ubuntu 5.8.0-33.36-generic 5.8.17
Uname: Linux 5.8.0-33-generic x86_64
ApportVersion: 2.20.11-0ubuntu50.2
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC2: aj 1262 F.... pulseaudio
 /dev/snd/controlC1: aj 1262 F.... pulseaudio
 /dev/snd/controlC3: aj 1262 F.... pulseaudio
 /dev/snd/controlC0: aj 1262 F.... pulseaudio
CasperMD5CheckResult: skip
CurrentDesktop: ubuntu:GNOME
Date: Mon Dec 14 22:11:01 2020
InstallationDate: Installed on 2020-12-12 (2 days ago)
InstallationMedia: Ubuntu 20.10 "Groovy Gorilla" - Release amd64 (20201022)
MachineType: LENOVO 20UHCTO1WW
ProcFB: 0 amdgpudrmfb
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-5.8.0-33-generic root=/dev/mapper/vgubuntu-root ro quiet splash vt.handoff=7
RelatedPackageVersions:
 linux-restricted-modules-5.8.0-33-generic N/A
 linux-backports-modules-5.8.0-33-generic N/A
 linux-firmware 1.190.2
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 09/15/2020
dmi.bios.release: 1.25
dmi.bios.vendor: LENOVO
dmi.bios.version: R1CET56W(1.25 )
dmi.board.asset.tag: Not Available
dmi.board.name: 20UHCTO1WW
dmi.board.vendor: LENOVO
dmi.board.version: Not Defined
dmi.chassis.asset.tag: No Asset Information
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: None
dmi.ec.firmware.release: 1.25
dmi.modalias: dmi:bvnLENOVO:bvrR1CET56W(1.25):bd09/15/2020:br1.25:efr1.25:svnLENOVO:pn20UHCTO1WW:pvrThinkPadT14sGen1:rvnLENOVO:rn20UHCTO1WW:rvrNotDefined:cvnLENOVO:ct10:cvrNone:
dmi.product.family: ThinkPad T14s Gen 1
dmi.product.name: 20UHCTO1WW
dmi.product.sku: LENOVO_MT_20UH_BU_Think_FM_ThinkPad T14s Gen 1
dmi.product.version: ThinkPad T14s Gen 1
dmi.sys.vendor: LENOVO

Revision history for this message
Andreas Herrmann (youareoutofusernames) wrote :
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote : Status changed to Confirmed

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
Revision history for this message
Kai-Heng Feng (kaihengfeng) wrote :
Changed in linux (Ubuntu):
status: Confirmed → Incomplete
Revision history for this message
Andreas Herrmann (youareoutofusernames) wrote :

I've installed mainline 5.10 and retried but the outcome was the same. I've attached the corresponding dmesg log including the same kmsg messages as before.

Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for linux (Ubuntu) because there has been no activity for 60 days.]

Changed in linux (Ubuntu):
status: Incomplete → Expired
Revision history for this message
Andreas Herrmann (youareoutofusernames) wrote :

The issue persists as of Feb. 20 2021 on Ubunutu 20.10 with the latest updates installed.
@kaihengfeng I tested with mainline 5.10 as requested, see above. Please let me know if you require further information or testing.

Changed in linux (Ubuntu):
status: Expired → New
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
Revision history for this message
Andre Plötze (andrepxx) wrote :

Hi!

Are you sure this is not a hardware issue?

The reason I believe it is a hardware issue is because I observed my system "drop monitors" on the docking station also under Windows 10 and even while in the UEFI. Lenovo replaced both the motherboard and the docking station (and I updated firmware for both multiple times), however the issue is still present.

You say that for you, the problem does not appear under Windows. However, note that (at least in my case) this is a sporadic issue, so it may show up every day or every week or only every one or two months. I know of absolutely no way to predict or even "provoke" this.

So are you really sure it is not present for Windows, i. e. have you run the system for MONTHS under Windows and are you sure that your monitors never went off, even for a second or two?

I just wanna say that it may be very hard to judge whether this bug is present or not, because it sometimes occurs VERY seldomly. Since I observed it under both Windows 10 and Ubuntu Linux 20.04 LTS and also while in UEFI, I'm pretty sure it is not (only) a software issue. However, I had both motherboard and docking station replaced and it still occurs, suggesting that it may actually be not just a faulty component, but an issue in the actual hardware design, in which case it might affect the entire notebook or even APU series.

Revision history for this message
Andreas Herrmann (youareoutofusernames) wrote :

@Andre Plötze

As described in the bug report I have observed the following that make me think that a hardware issue can be excluded:

> All above modes of connection work as expected with the same laptop, dock, and display on Windows 10 (installed as dual boot along side Ubuntu).
> All above modes of connection also work as expected with an older laptop (ThinkPad T470s - Ubuntu 20.04 - kernel 5.4.0), and the same dock and display.
> This leads me to believe that this is not a hardware issue.

My main operating system is Ubuntu and I only use Windows on rare occasion, so I do not have months of usage under Windows that I can report on. However, whenever I test with the T14s on Windows the monitor connection through the dock works immediately and reliably, while it never works on Linux with the T14s. So, even if there was an underlying hardware issue somewhere, it would still seem that there is a software issue as well which makes me not encounter any issues on Windows, while consistently observing an issue on Linux.

You report that you are using Ubuntu 20.04 LTS, I am using Ubuntu 20.10. The corresponding difference in kernel may well be relevant here. Also, just to be sure, do you have the same laptop model (ThinkPad T14s Gen 1 - AMD Ryzen 7 PRO 4750U) or a different one?

Revision history for this message
Chris (xpusostomos) wrote :

I'm running a Lenovo P14s AMD (basically same machine as T14 and similar to T14s), with gen 2 dock (latest firmware), running Ubuntu 21.04 latest updates, and I see this happen about every day, the external keyboard and mouse stop working, and sometimes the monitor stops working... sometimes just stops working when I come back to it, other times when I plug into the dock. Only solution is reboot. When I reboot I see a message like this:

drm:drm_dp_send_dpcd_read drm_kms_helper ERROR mstb port DPCD read on addr 0x60 for 1 bytes NAKed

which freezes the machine and I have to do a hard reboot. I have not seen the issue on Windows and I have a lot of time running it with Windows also.

Revision history for this message
Andreas Herrmann (youareoutofusernames) wrote :

@xpusostomos Thanks for adding to this bug report. Interesting, a similar message

```
 [ 537.010093] [drm:drm_dp_send_dpcd_read [drm_kms_helper]] *ERROR* mstb 00000000271ba325 port 1: DPCD read on addr 0x60 for 1 bytes NAKed
```

also appears in my log, however, only right after plugging in the screen via HDMI. This message did not appear after plugging in the screen via Display Port.

In my case I am using the USB-C dock for keyboard, mouse, and webcam. I have very seldomly had issues where mouse and keyboard stopped working. Perhaps three to five times over the last seven months at daily full-time use. In some instances they started working again after un- and replugging the devices, or just waiting for a few minutes. However, I cannot say whether this is related to the dock or some other issue. Similarly, I have only very rarely had the machine freeze and cannot say whether this was related to the dock or not.

Revision history for this message
Andreas Herrmann (youareoutofusernames) wrote :

The issue persists on Ubuntu 21.04 with Linux kernel 5.11.0-25-generic.

Revision history for this message
Paul van Schayck (paulvanschayck) wrote :

I seem to have very similar issues. Using a Lenovo ThinkPad X1 Carbon 7th gen and ThinkPad USB-C Dock Gen 2. But I also see this on a different docking station. I'm pretty sure they are both using USB-C DP-alt mode.

When I boot my laptop connected to the docking stations, I can see BIOS POST messages, but the moment it switches to my LUKS encryption prompt the display turns off. It is visible on the laptop screen.

I don't think I see any relevant kernel messages in dmesg.

This does not happen to me on 5.8.0-7642-generic (this is a Pop!OS specific kernel, but don't think that matters). I've also tested 5.11.0-25-generic, and the issues persists.

This RedHat bug report seems very similar:
https://bugzilla.redhat.com/show_bug.cgi?id=1879442

Which links to:
https://gitlab.freedesktop.org/drm/intel/-/issues/2579

The DRM error "DPCD read on addr 0x60 for 1 bytes NAKed" was also reported there. And resolved with backports of the drm code to 5.11. Could this bug report be the same problem?

Revision history for this message
Kai-Heng Feng (kaihengfeng) wrote :

Please test latest drm-tip kernel:
https://kernel.ubuntu.com/~kernel-ppa/mainline/drm-tip/current/

Headers are not needed.

Revision history for this message
Paul van Schayck (paulvanschayck) wrote :

Thanks for that. Happy to report that 5.14.0-051400rc5drmtip20210809-generic works for me.

Also happy to provide specific logging of DRM of the working 5.8.0-7642-generic or 5.14.0-051400rc5drmtip20210809-generic and the not working 5.11.0-25-generic.

Revision history for this message
Andreas Herrmann (youareoutofusernames) wrote :

@kaihengfeng thank you for the update.
I have installed 5.14.0-051400rc5drmtip20210814-generic and am happy to report that the external display connected through the docking station via HDMI or DisplayPort works as expected.

Revision history for this message
Paul van Schayck (paulvanschayck) wrote :

The issue seems to have been resolved for me with 5.13.0-7620, while it was still broken with 5.13.0-7614. I realize these are System76 specific kernels, but maybe the trend is the same for the corresponding 5.13.0-20 and 5.13.0-14.

Revision history for this message
Andreas Herrmann (youareoutofusernames) wrote :
Download full text (5.5 KiB)

The issue persists on Ubuntu 21.10 with Linux 5.13.0-39-generic.

Plugging in Display Port into the docking station wakes up the external screen but does not produce an image (the screen stays black) the builtin screen also goes and remains black until Display Port is disconnected again. Dmesg reports:

```
[ 403.810921] [drm] DP Alt mode state on HPD: 1
[ 403.883530] [drm] DM_MST: starting TM on aconnector: 00000000c7e4d18b [id: 90]
[ 404.002066] [drm:drm_dp_mst_dpcd_read [drm_kms_helper]] *ERROR* mstb 00000000da8e8ece port 1: DPCD read on addr 0x4b0 for 1 bytes NAKed
[ 404.094206] [drm:drm_dp_mst_dpcd_read [drm_kms_helper]] *ERROR* mstb 00000000da8e8ece port 2: DPCD read on addr 0x4b0 for 1 bytes NAKed
[ 404.937533] usb 4-1.2.4: new full-speed USB device number 36 using xhci_hcd
[ 405.057017] usb 4-1.2.4: New USB device found, idVendor=0409, idProduct=04c6, bcdDevice= 0.01
[ 405.057029] usb 4-1.2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 405.057033] usb 4-1.2.4: Product: EA275UHD
[ 405.057036] usb 4-1.2.4: Manufacturer: NEC
[ 405.160140] hid-generic 0003:0409:04C6.001A: hiddev0,hidraw1: USB HID v1.10 Device [NEC EA275UHD] on usb-0000:06:00.3-1.2.4/input0
[ 409.602964] [drm:drm_dp_mst_dpcd_read [drm_kms_helper]] *ERROR* mstb 00000000da8e8ece port 1: DPCD read on addr 0x4b0 for 1 bytes NAKed
[ 409.638815] [drm:drm_dp_mst_dpcd_read [drm_kms_helper]] *ERROR* mstb 00000000da8e8ece port 2: DPCD read on addr 0x4b0 for 1 bytes NAKed
[ 409.707465] [drm:drm_dp_mst_dpcd_read [drm_kms_helper]] *ERROR* mstb 00000000da8e8ece port 1: DPCD read on addr 0x4b0 for 1 bytes NAKed
[ 409.743267] [drm:drm_dp_mst_dpcd_read [drm_kms_helper]] *ERROR* mstb 00000000da8e8ece port 2: DPCD read on addr 0x4b0 for 1 bytes NAKed
[ 409.812087] [drm:drm_dp_mst_dpcd_read [drm_kms_helper]] *ERROR* mstb 00000000da8e8ece port 1: DPCD read on addr 0x4b0 for 1 bytes NAKed
[ 409.847669] [drm:drm_dp_mst_dpcd_read [drm_kms_helper]] *ERROR* mstb 00000000da8e8ece port 2: DPCD read on addr 0x4b0 for 1 bytes NAKed
[ 409.916745] [drm:drm_dp_mst_dpcd_read [drm_kms_helper]] *ERROR* mstb 00000000da8e8ece port 1: DPCD read on addr 0x4b0 for 1 bytes NAKed
[ 409.952273] [drm:drm_dp_mst_dpcd_read [drm_kms_helper]] *ERROR* mstb 00000000da8e8ece port 2: DPCD read on addr 0x4b0 for 1 bytes NAKed
[ 417.157667] usb 4-1.2.4: USB disconnect, device number 36
[ 425.461698] [drm] DM_MST: stopping TM on aconnector: 00000000c7e4d18b [id: 90]
```

(The USB through DP seems to be working - the external screen has a device connected to it via USB)

Connecting via HDMI through the docking station fails in the same way. In that case dmesg reports:

```
[ 515.176650] [drm] DP Alt mode state on HPD: 1
[ 515.247435] [drm] DM_MST: starting TM on aconnector: 00000000c7e4d18b [id: 90]
[ 515.421788] [drm:drm_dp_mst_dpcd_read [drm_kms_helper]] *ERROR* mstb 00000000ea0c2bd3 port 1: DPCD read on addr 0x4b0 for 1 bytes NAKed
[ 515.490800] [drm:drm_dp_mst_dpcd_read [drm_kms_helper]] *ERROR* mstb 00000000ea0c2bd3 port 2: DPCD read on addr 0x4b0 for 1 bytes NAKed
[ 515.560598] [drm:drm_dp_mst_dpcd_read [drm_kms_helper]] *ERROR* mstb 00000000ea0c2bd3 port 3: DPCD read on addr 0x4b0 ...

Read more...

Revision history for this message
Andreas Herrmann (youareoutofusernames) wrote :

I have now been able to test my setup on Ubuntu 22.04 with Linux 5.15.0-46-generic #49-Ubuntu on x86_64. I am happy to report that I can now connect my external monitor through either HDMI or DisplayPort to the USB-C docking station and it works as expected. I do still see the occasional message of the following form in dmesg:

amdgpu 0000:06:00.0: [drm] *ERROR* mstb 000000008269b15b port 1: DPCD read on addr 0x4b0 for 1 bytes NAKed

Nonetheless, the setup has been working in a reasonably stable fashion for the last couple days. The image on the monitor is stable under normal operation. The only problems I encounter are that changing display settings, such as fractional scaling, can sometimes cause the external display to not come back online and I need to disconnect and then reconnect the display.

Changed in linux (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
Andre Plötze (andrepxx) wrote :

The issue with monitors "dropping" appears to be fixed for me with the latest firmware.

- UEFI Version 1.14 (R1CUJ72W), issued on 2022-07-29.
- USB-Docking (Gen 2) Firmware Version 1.1.18, issued on 2022-09-14.

However, I now have the issue of my Ethernet connection "dropping" shortly after boot.

The Ethernet controller "disappears" from the bus, apparently due to some power management event. (Something regarding "link power management" is logged before it "disappears".) It seems like the kernel module for the Realtek chip then cyclically tries to reset the controller and upload firmware to it, which fails, causing it to reset again and so on. Sometimes it seems like this cyclical reset can even lock up the kernel and therefore the system. Power-cycling the docking station solves the issue, as it apparently causes the Ethernet controller to get initialized correctly (accepting the temporary firmware upload) and the link coming up. It also "unfreezes" the system if it is frozen due to being stuck in the "controller reset cycle".

This is on Ubuntu 22.04 LTS though.

There's really something weird going on with the high-speed busses on these Ryzen-based systems it seems, and depending on the UEFI, it appears to affect different parts of the system.

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.