Bug 217237

Summary: Fail to read EDID after resuming from suspend since kernel 6.2
Product: Drivers Reporter: James Le Cuirot (chewi)
Component: Video(DRI - non Intel)Assignee: drivers_video-dri
Status: RESOLVED ANSWERED    
Severity: normal CC: jani.nikula
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 6.3.0-rc3 Subsystem:
Regression: No Bisected commit-id:
Attachments: dmesg from 6.2.7 showing boot, suspend, resume

Description James Le Cuirot 2023-03-23 21:40:12 UTC
Created attachment 304013 [details]
dmesg from 6.2.7 showing boot, suspend, resume

Since upgrading past Linux kernel 6.2, my system has been unable to read the EDID after resuming from suspend. I got the following error:

[  135.566642] EDID block 0 is all zeroes
[  135.566831] amdgpu 0000:0f:00.0: [drm] User-defined mode not supported: "2560x1440": 144 592000 2560 2568 2600 2666 1440 1465 1470 1543 0x60 0x9
[  135.566836] amdgpu 0000:0f:00.0: [drm] User-defined mode not supported: "2560x1440": 144 807923 2560 2784 3072 3584 1440 1441 1444 1565 0x20 0x6

After this, the only available mode is 640x480. This happens with both my displays, a monitor and a TV. I have a Radeon RX 6800 XT that previously worked fine in this regard. I usually override the EDID with drm.edid_firmware, but removing this has not helped.

I tried bisecting the issue, but perhaps it doesn't happen every single time, as it lead my down a dead end. I also tried reverting some potential culprits, to no avail. I can see that there were some very large EDID-related changes by Jani Nikula for 6.2. I wasn't able to revert these, so I will CC them here.

I am happy to provide further information.
Comment 1 Artem S. Tashkinov 2023-03-24 07:43:13 UTC
Please report here instead https://gitlab.freedesktop.org/drm/amd/-/issues

Also, since you're not averse to testing, you could perform regression testing:

https://docs.kernel.org/admin-guide/bug-bisect.html
Comment 2 Jani Nikula 2023-03-24 08:04:01 UTC
Yeah, bisection is likely the quickest way to resolve this.

Please add drm.debug=0xe module parameter, redo the full dmesg, and attach it to the gitlab issue.

Please also tag me with @jani in the gitlab issue. Thanks.