Resume fail with drm.edid_firmware
Brief summary of the problem:
My external monitor has an invalid EDID. So I use drm.edid_firmware
kernel parameter to fix this. But under a heavy memory pressure (Like 95% of the memory is full), I'm unable to resume the machine correctly. It's just a black screen. Backlight is off too. I can use sysrq key to reboot the machine and nothing else.
When I remove the drm.edid_firmware
parameter, it just works fine. Even with the memory 100% full.
Also, I can override the EDID via /sys/kernel/debug/dri/0/HDMI-A-1/edid_override
(without drm.edid_firmware
) and it seems to resume without any issue too.
Hardware description:
- CPU:
AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx
- GPU:
03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Picasso/Raven 2 [Radeon Vega Series / Radeon Vega Mobile Series] [1002:15d8] (rev c2)
- System Memory:
8.0 GiB
(7.1 GB
usable) - Display(s): Internal:
1920x1080
, External:1200x1920
- Type of Display Connection: Internal:
card0-eDP-1
, External:card0-HDMI-A-1
System information:
- Distro name and Version:
Fedora Linux 36 (Workstation Edition)
- Kernel version:
Linux fedora 5.18.5-200.fc36.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jun 16 14:51:11 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
- Custom kernel:
N/A
- AMD official driver version:
N/A
How to reproduce the issue:
- Add
drm.edid_firmware=HDMI-A-1:edid/1200x1920.bin
to your kernel parameters - Reboot of course
- Fill the memory up to 95%
- Suspend
- Try to resume