Display state not remembered when using USB to DisplayPort Cable

My AMD (Renoir) Laptop runs Fedora 36 with Gnome. I have an external monitor which is connected via USB to Displayport Cable. When the screen goes to sleep, power cycles or the cable is reconnected, the state of the monitor configuration is not remembered. It always switches back to extended mode. This means i need to switch to “external display only” mode every time the laptop disables the screen to save power ro the cable is reattached.

When connecting the monitor via HDMI this is not an issue, the state correctly is remembered.

Kernel version: 5.18.18-200.fc36.x86_64

$ find /sys/devices -name "edid" # with external monitor via USB to DP
/sys/devices/pci0000:00/0000:00:08.1/0000:05:00.0/drm/card0/card0-HDMI-A-1/edid
/sys/devices/pci0000:00/0000:00:08.1/0000:05:00.0/drm/card0/card0-eDP-1/edid
/sys/devices/pci0000:00/0000:00:08.1/0000:05:00.0/drm/card0/card0-DP-4/edid
/sys/devices/pci0000:00/0000:00:08.1/0000:05:00.0/drm/card0/card0-DP-2/edid
/sys/devices/pci0000:00/0000:00:08.1/0000:05:00.0/drm/card0/card0-DP-3/edid # this here
/sys/devices/pci0000:00/0000:00:08.1/0000:05:00.0/drm/card0/card0-DP-1/edid

card0-DP-3 is connected to the display. The monitor make and model is correctly identified (via edid-decode).

Kernel log when reconnecting the cable:

Sep 06 02:39:11 hostname kernel: [drm] DM_MST: stopping TM on aconnector: 00000000e4a705ac [id: 94]
Sep 06 02:39:11 hostname kernel: usb 4-1: USB disconnect, device number 24
Sep 06 02:39:11 hostname kernel: usb 4-1.1: USB disconnect, device number 25
Sep 06 02:39:11 hostname kernel: r8152 4-1.1:1.0 enp5s0f3u1u1: Stop submitting intr, status -108
Sep 06 02:39:13 hostname kernel: usb 4-1: new SuperSpeed USB device number 26 using xhci_hcd
Sep 06 02:39:13 hostname kernel: usb 4-1: New USB device found, idVendor=17ef, idProduct=721d, bcdDevice= 4.74
Sep 06 02:39:13 hostname kernel: usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Sep 06 02:39:13 hostname kernel: usb 4-1: Product: Lenovo Powered Hub     
Sep 06 02:39:13 hostname kernel: usb 4-1: Manufacturer: VIA Labs, Inc.         
Sep 06 02:39:13 hostname kernel: hub 4-1:1.0: USB hub found
Sep 06 02:39:13 hostname kernel: hub 4-1:1.0: 4 ports detected
Sep 06 02:39:14 hostname kernel: usb 4-1.1: new SuperSpeed USB device number 27 using xhci_hcd
Sep 06 02:39:14 hostname kernel: usb 4-1.1: New USB device found, idVendor=17ef, idProduct=721e, bcdDevice=31.03
Sep 06 02:39:14 hostname kernel: usb 4-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=6
Sep 06 02:39:14 hostname kernel: usb 4-1.1: Product: Lenovo Powered Hub
Sep 06 02:39:14 hostname kernel: usb 4-1.1: Manufacturer: Lenovo
Sep 06 02:39:14 hostname kernel: usb 4-1.1: SerialNumber: 3014E995B
Sep 06 02:39:15 hostname kernel: usb 4-1.1: reset SuperSpeed USB device number 27 using xhci_hcd
Sep 06 02:39:15 hostname kernel: r8152 4-1.1:1.0: load rtl8153b-2 v1 10/23/19 successfully
Sep 06 02:39:15 hostname kernel: r8152 4-1.1:1.0 eth0: v1.12.13
Sep 06 02:39:15 hostname kernel: r8152 4-1.1:1.0 enp5s0f3u1u1: renamed from eth0
Sep 06 02:39:16 hostname kernel: [drm] DP Alt mode state on HPD: 1
Sep 06 02:39:16 hostname kernel: [drm] DM_MST: starting TM on aconnector: 00000000e4a705ac [id: 94]
Sep 06 02:39:16 hostname kernel: amdgpu 0000:05:00.0: [drm] *ERROR* mstb 00000000f2b56746 port 1: DPCD read on addr 0x4b0 for 1 bytes NAKed
Sep 06 02:39:16 hostname kernel: amdgpu 0000:05:00.0: [drm] *ERROR* mstb 00000000f2b56746 port 1: DPCD read on addr 0x4b0 for 1 bytes NAKed
Sep 06 02:39:17 hostname kernel: amdgpu 0000:05:00.0: [drm] *ERROR* mstb 00000000f2b56746 port 1: DPCD read on addr 0x4b0 for 1 bytes NAKed
Sep 06 02:39:22 hostname kernel: amdgpu 0000:05:00.0: [drm] *ERROR* mstb 00000000f2b56746 port 1: DPCD read on addr 0x4b0 for 1 bytes NAKed
Sep 06 02:39:22 hostname kernel: amdgpu 0000:05:00.0: [drm] *ERROR* mstb 00000000f2b56746 port 1: DPCD read on addr 0x4b0 for 1 bytes NAKed
Sep 06 02:39:22 hostname kernel: amdgpu 0000:05:00.0: [drm] *ERROR* mstb 00000000f2b56746 port 1: DPCD read on addr 0x4b0 for 1 bytes NAKed
Sep 06 02:39:28 hostname kernel: [drm:dc_dmub_srv_wait_idle [amdgpu]] *ERROR* Error waiting for DMUB idle: status=3

As the display itself is detected and used as an extended display it does not appear like a kernel problem to me, but related to remembering and restoring the multiple monitor config.

In bug reports for DPCD read on addr 0x4b0 for 1 bytes NAKed the monitor is not detected at all.

Hi there. Can you please gives us the output of inxi -CGxxM --edid?

  Type: Laptop System: LENOVO product: 20XJS0YV00 v: ThinkPad X13 Gen 2a
    serial: <superuser required> Chassis: type: 10 serial: <superuser required>
  Mobo: LENOVO model: 20XJS0YV00 serial: <superuser required> UEFI: LENOVO
    v: R1NET51W (1.21) date: 06/27/2022
CPU:
  Info: model: AMD Ryzen 5 PRO 5650U with Radeon Graphics bits: 64
    type: MT MCP arch: Zen 3 gen: 4 built: 2021-12 process: TSMC n7 (7nm)
    family: 0x19 (25) model-id: 0x50 (80) stepping: 0 microcode: 0xA50000C
  Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
    L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 3 MiB desc: 6x512 KiB
    L3: 16 MiB desc: 1x16 MiB
  Speed (MHz): avg: 2133 high: 3169 min/max: 400/4289 boost: enabled
    scaling: driver: amd-pstate governor: schedutil cores: 1: 1774 2: 1816
    3: 1852 4: 1832 5: 1834 6: 1885 7: 2313 8: 2542 9: 2858 10: 3169 11: 1462
    12: 2260 bogomips: 55095
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Graphics:
  Device-1: AMD Cezanne vendor: Lenovo driver: amdgpu v: kernel arch: GCN 5.1
    process: TSMC n7 (7nm) built: 2018-21 pcie: gen: 3 speed: 8 GT/s lanes: 16
    link-max: gen: 4 speed: 16 GT/s ports: active: DP-3,eDP-1
    empty: DP-1, DP-2, DP-4, HDMI-A-1 bus-ID: 05:00.0 chip-ID: 1002:1638
    class-ID: 0300
  Device-2: IMC Networks Integrated RGB Camera type: USB driver: uvcvideo
    bus-ID: 1-2:2 chip-ID: 13d3:5271 class-ID: 0e02 serial: 01.00.00
  Display: wayland server: X.org v: 1.20.14 with: Xwayland v: 22.1.3
    compositor: gnome-shell v: 42.4 driver: X: loaded: amdgpu
    unloaded: fbdev,modesetting,vesa gpu: amdgpu display-ID: 0
  Monitor-1: DP-3 model: Dell U2415 serial: 7MT0164H0JLL built: 2016
    res: 1920x1200 dpi: 94 gamma: 1.2 chroma: red: x: 0.663 y: 0.333 green:
    x: 0.302 y: 0.616 blue: x: 0.149 y: 0.063 white: x: 0.314 y: 0.329
    size: 518x324mm (20.39x12.76") diag: 611mm (24.1") ratio: 16:10
    modes: 1920x1200, 1920x1080, 1600x1200, 1280x1024, 1152x864, 1280x720,
    1024x768, 800x600, 720x576, 720x480, 640x480, 720x400
  Monitor-2: eDP-1 model: AU Optronics 0x6693 built: 2020 res: 1920x1200
    dpi: 171 gamma: 1.2 chroma: red: x: 0.651 y: 0.325 green: x: 0.290 y: 0.627
    blue: x: 0.149 y: 0.051 white: x: 0.314 y: 0.329
    size: 286x178mm (11.26x7.01") diag: 337mm (13.3") ratio: 16:10
    modes: 1920x1200, 1920x1080, 1600x1200, 1680x1050, 1280x1024, 1440x900,
    1280x800, 1280x720, 1024x768, 800x600, 640x480
  OpenGL:
    renderer: AMD RENOIR (LLVM 14.0.0 DRM 3.46 5.18.18-200.fc36.x86_64)
    v: 4.6 Mesa 22.1.7 direct render: Yes
1 Like