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.