Bug 218569 - Early KMS Resolution Issue on MST dock connected 4K Monitor
Summary: Early KMS Resolution Issue on MST dock connected 4K Monitor
Status: RESOLVED ANSWERED
Alias: None
Product: Drivers
Classification: Unclassified
Component: Video(DRI - non Intel) (show other bugs)
Hardware: All Linux
: P3 normal
Assignee: drivers_video-dri
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-03-07 11:33 UTC by Emre
Modified: 2024-03-08 07:18 UTC (History)
0 users

See Also:
Kernel Version:
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Emre 2024-03-07 11:33:31 UTC
My laptop, a Thinkpad P14s Gen2 AMD has two usb-c and an hdmi port. I use one USB-C port to connect to Thinkpad Dock Type 40B0 which has an internal MST hub. The Dock has 2xDP connectors and 1xHDMI. The dock is connected to a 4K TV (LG C2), using a DP to HDMI cable.

The system works fine when Wayland or Xorg starts and displays 3840x2160@60hz.

I noticed a lot of monitor sync loss when changing modes. At UEFI boot it's at 1280x1024, then at kernel boot it switches to 1920x1080 and monitor loses signal during this transition, then SDDM or GDM starts it switches to 3840x2160, and when I login to KDE, it loses signal again for a few seconds then shows the desktop again at 3840x2160@60.
So this is a nuisance for losing monitor sync but not effecting normal operation.

I then tried to use the HDMI port on the laptop. I unplugged the cable from the dock and plugged a separate HDMI cable directly to the port on the Laptop. Then I noticed it was fully smooth. After UEFI, mode immediately switched to 3840x2160@60 with early kms and then SDDM launched without losing any signal. Then logging into desktop also is smooth and does not lose any signal.

So I concluded something is wrong when one uses a Monitor connected to a Dock with MST Hub function, connected to a USB-C port on the laptop (no-Thunderbolt). Problems are:
1) When using the MST docking station, early kms does not switch to native 4K resolution (3840x2160@60hz). I tried feeding an EDID at kernel command line, it did not work.
2) Monitor loses signal sync when switching modes when using Dock. Does not happen when using HDMI port on laptop.

This does not happen if I use a simpler usb-c hub without MST support. So a simple usb-c hub with one HDMI port out works fine.

Problematic setup:
Laptop --usb-c-- dock_with_mst -- dp2hdmi cable -- hdmi_port_on_4K_Monitor
Working setup:
Laptop -- hdmi -- hdmi_port_on_4K_Monitor

Kernel Version: Linux: 6.7.8-arch1-1

bug reported to Arch as well but I'm directed to report upstream:
https://gitlab.archlinux.org/archlinux/packaging/packages/linux/-/issues/32

Steps to reproduce:
1) Use any recent kernel and use any docking station with an MST hub.
2) Connect a monitor to the docking station.
3) Connect Dock to the laptop using USB-C port (no thunderbolt support, ie amd laptop)
4) Use early kms by adding amdgpu to mkinitcpio.conf modules section
5) Watch monitor resolution using Monitor functions while booting
Comment 1 Artem S. Tashkinov 2024-03-07 17:10:32 UTC
1. Would be great if you tested Windows and confirmed it's not an issue there.
2. One you've done that, probably it's worth posting here: https://gitlab.freedesktop.org/drm/amd/-/issues

Pretty much no one is subscribed to this bugzilla component.
Comment 2 Emre 2024-03-08 07:18:18 UTC
OK, I don't have windows on this laptop. I can try another windows laptop but that has thunderbolt and I dont know if behavior would be the same in windows.

I had an impression this was sth to do with MST rather than amdgpu since amdgpu can drive hdmi port just fine, but anyway I will open a bug report in the drm as well.

Note You need to log in before you can comment on or make changes to this bug.