https://bugzilla.kernel.org/show_bug.cgi?id=214199
Bug ID: 214199 Summary: Sapphire NITRO+ RX 580 4G G5 - Secondary display doesn't wake up on boot, both displays won't wake up from suspend Product: Drivers Version: 2.5 Kernel Version: 5.13.12 Hardware: All OS: Linux Tree: Mainline Status: NEW Severity: normal Priority: P1 Component: Video(DRI - non Intel) Assignee: drivers_video-dri@kernel-bugs.osdl.org Reporter: kernel@zeljko.anonaddy.com Regression: No
Created attachment 298497 --> https://bugzilla.kernel.org/attachment.cgi?id=298497&action=edit Boot dmesg
Hi! This is the first time I've tried Linux with this graphics card.
The issues are that my second monitor doesn't wake up from stand by on boot and also both monitors won't wake up from suspend.
If I turn off the second monitor and turn it back on after boot it works fine.
Same with both monitors after the computer wakes up from suspend. I have to turn off both of them and turn them back on.
I'm attaching both boot and suspend dmesg logs with drm.debug=0xe kernel parameter from a fresh install of Arch Linux.
https://bugzilla.kernel.org/show_bug.cgi?id=214199
--- Comment #1 from Zeljko (kernel@zeljko.anonaddy.com) --- Created attachment 298499 --> https://bugzilla.kernel.org/attachment.cgi?id=298499&action=edit Suspend dmesg
https://bugzilla.kernel.org/show_bug.cgi?id=214199
--- Comment #2 from Zeljko (kernel@zeljko.anonaddy.com) --- At first, I've got both monitors to work correctly with amdgpu.dc=0 kernel parameter.
After analyzing the dmesg outputs without the above kernel parameter I've noticed that, on boot, my second monitor (connected on HDMI-A-2) was detected but went on some kind of loop reporting that the Edid was changed.
[drm:dc_link_detect_helper [amdgpu]] link=3, dc_sink_in=0000000000000000 is now Disconnected prev_sink=000000009ae23fd3 dpcd same=1 edid same=0 [drm:amdgpu_dm_update_connector_after_detect [amdgpu]] DCHPD: connector_id=3: Old sink=000000009ae23fd3 New sink=0000000000000000 [drm:drm_connector_update_edid_property [drm]] [CONNECTOR:79:HDMI-A-2] Edid was changed. [drm:drm_connector_update_edid_property [drm]] Updating change counter to 61
Same thing happens when the computer wakes up from suspend, but than both monitors go into the same kind of loop.
[drm:dc_link_detect_helper [amdgpu]] link=3, dc_sink_in=0000000000000000 is now Disconnected prev_sink=000000003f9f81c9 dpcd same=1 edid same=0 [drm:amdgpu_dm_update_connector_after_detect [amdgpu]] DCHPD: connector_id=3: Old sink=000000003f9f81c9 New sink=0000000000000000 [drm:drm_connector_update_edid_property [drm]] [CONNECTOR:79:HDMI-A-2] Edid was changed. [drm:drm_connector_update_edid_property [drm]] Updating change counter to 118
[drm:dc_link_detect_helper [amdgpu]] link=2, dc_sink_in=0000000000000000 is now Disconnected prev_sink=000000006f240528 dpcd same=1 edid same=0 [drm:amdgpu_dm_update_connector_after_detect [amdgpu]] DCHPD: connector_id=2: Old sink=000000006f240528 New sink=0000000000000000 [drm:drm_connector_update_edid_property [drm]] [CONNECTOR:74:HDMI-A-1] Edid was changed. [drm:drm_connector_update_edid_property [drm]] Updating change counter to 41
After some googling I've managed to get both monitors working correctly without amdgpu.dc=0 by forcing edid files extracted from both monitors using these kernel parameters:
video=HDMI-A-1:e video=HDMI-A-2:e drm.edid_firmware=HDMI-A-1:edid/edid1.bin,HDMI-A-2:edid/edid2.bin
Couple more details that may help: - both monitors are the same model BenQ GW2470 - they are both connected via a HDMI 2.0 cable from the same maker and are the same length - I've decoded and compared both edid files and the only differences are the "Display Product Serial Number" and "Checksum"
dri-devel@lists.freedesktop.org