Hi all, I would like to share an important update based on further testing.
After implementing a temporary workaround, I noticed that the issue is not limited to suspend/resume. There is a second trigger that seems to affect the same underlying problem. 🔍 Additional trigger identified (DPMS / screen off) Sequence: 1. System resumes from suspend → works correctly (login screen appears) 2. System becomes idle → screen turns off (DPMS) 3. Upon user interaction (keyboard/mouse), the display fails to wake properly Observed behavior: * Black screen or no signal * System remains responsive (can sometimes type blindly) * In some cases, session becomes partially corrupted Important detail: This behavior is very similar to what happens after suspend/resume: * HDMI link is not properly restored * Monitor may be misdetected or not reinitialized correctly ________________________________ 🧪 Workaround behavior * Disabling the phantom output (DVI-D-1) restores the display immediately * Forcing HDMI-A-0 as primary also helps reinitialize the session * Disabling automatic screen-off (DPMS) avoids the issue entirely ________________________________ 🧠 Interpretation This suggests the problem is not strictly related to suspend, but more generally to display reinitialization after power state transitions, including: * suspend/resume (deep) * screen power off/on (DPMS) Given that both paths trigger similar failures, this may point to issues in: * EDID re-read after power events * HDMI link training * atomic modeset state reconstruction * DC state restore ________________________________ 💡 Conclusion The bisected commit may still represent a valid trigger point, but the root cause appears to be related to how display state is restored after power transitions, rather than suspend alone. ________________________________ 📎 Additional notes * Wayland still does not show the same hard failure * Issue remains reproducible * Workarounds are consistent ________________________________ I hope this additional information helps narrow down the issue further. Please let me know if I can assist with more testing. Thanks again for your time and your work. Best regards, Danilo ________________________________ De: Danilo Machado <[email protected]> Enviado: domingo, 29 de março de 2026 13:29 Para: [email protected] <[email protected]> Cc: Alex Deucher <[email protected]>; [email protected] <[email protected]> Assunto: RE: Additional testing: [REGRESSION][bisected] amdgpu/tonga: HDMI no signal after suspend/resume Hi all, I’d like to provide a final update on this regression affecting AMD Radeon R9 380 (Tonga), which I bisected earlier between Linux 6.3 (good) and 6.4 (bad). After further investigation, I was able to isolate the issue more precisely and identify a reliable workaround. 🔍 Summary: After suspend/resume under X11: * HDMI monitor is physically connected and EDID is valid * Kernel (DRM) correctly detects the HDMI connector * However, X11 ends up with an inconsistent display state Observed behavior: * HDMI-A-0 is active at correct resolution (1920x1080) * A phantom output (DVI-D-1) appears as connected * DVI-D-1 is incorrectly set as primary at 640x480 * Desktop becomes corrupted (missing panels, apps failing, incorrect layout) xrandr example after resume: HDMI-A-0 connected 1920x1080+0+0 DVI-D-1 connected primary 640x480+1920+116 🧠 Key finding: The issue is not EDID or link training. EDID is readable and valid. This appears to be a failure in atomic modeset / connector-to-CRTC mapping during resume, leading to an incorrect fallback output being selected as primary. 💡 Workaround (100% reproducible fix): Running the following immediately restores the system: xrandr --output DVI-D-1 --off xrandr --output HDMI-A-0 --primary --mode 1920x1080 This strongly suggests that the correct state exists but is not applied automatically after resume. ⚙️ Additional observations: * Wayland does not exhibit the same failure (likely due to dynamic state handling) * Issue reproducible only on 6.4+ * s2idle reduces severity but does not fix the issue * amdgpu.dc=0 makes the system fully unusable after resume 🧪 Bisect: First bad commit: b3c98052d46948a8d65d2778c7f306ff38366aac (KVM merge) This likely indicates an indirect trigger (timing/order change during resume), not a direct amdgpu change. 📎 Logs and details available upon request. 🙏 I’m happy to test patches or provide additional debug information. Thanks for your time and for maintaining amdgpu. Best regards, Danilo ________________________________ De: Danilo Machado <[email protected]> Enviado: domingo, 29 de março de 2026 10:36 Para: [email protected] <[email protected]> Cc: Alex Deucher <[email protected]>; [email protected] <[email protected]> Assunto: RE: Additional testing: [REGRESSION][bisected] amdgpu/tonga: HDMI no signal after suspend/resume Also reported on GitLab: https://gitlab.freedesktop.org/drm/amd/-/work_items/5123 ________________________________ De: Danilo Machado <[email protected]> Enviado: domingo, 29 de março de 2026 09:42 Para: [email protected] <[email protected]> Cc: Alex Deucher <[email protected]>; [email protected] <[email protected]> Assunto: RE: Additional testing: [REGRESSION][bisected] amdgpu/tonga: HDMI no signal after suspend/resume Additional testing: I tested with amdgpu.dc=0 to disable Display Core. Result: - system becomes completely unresponsive after resume - black screen, no input response This suggests the issue is not limited to Display Core (DC), but likely affects the core GPU resume path. With DC enabled: - partial recovery (corrupted display, EDID failure) With DC disabled: - complete failure This reinforces that the regression is deeper in the amdgpu resume sequence. ________________________________ De: Danilo Machado <[email protected]> Enviado: sexta-feira, 27 de março de 2026 20:36 Para: [email protected] <[email protected]> Cc: Alex Deucher <[email protected]>; [email protected] <[email protected]> Assunto: RE: [REGRESSION][bisected] amdgpu/tonga: HDMI no signal after suspend/resume Additional data (resume failure analysis) Hardware: - GPU: AMD Radeon R9 380 (Tonga, GCN 3) - CPU: AMD Ryzen 5 5500 - RAM: 16 GB - Display: HDMI Software: - Kernel: 6.8.0-106-generic - Driver: amdgpu - Display server: X11 (issue reproducible), Wayland (no hard failure) --- Summary: After suspend/resume, HDMI output is not restored and the system may freeze under X11. The issue is reproducible and was not present in Linux 6.3. --- Key observation: During resume, the driver fails to read EDID: amdgpu 0000:01:00.0: [drm] *ERROR* No EDID read. This appears to explain why HDMI output is not restored. --- Relevant DRM / AMDGPU log excerpt: [drm] Display Core v3.2.266 initialized on DCE 10.0 amdgpu 0000:01:00.0: [drm] *ERROR* No EDID read. [drm] Initialized amdgpu 3.57.0 20150101 for 0000:01:00.0 --- Analysis: - The failure occurs during display reinitialization after resume - EDID read failure prevents proper HDMI modeset - This aligns with the observed "no signal" condition Behavior differences: - deep sleep: - full GPU/display reinitialization - leads to EDID failure and system instability - s2idle: - partial resume - avoids full lockup but display may still be inconsistent This suggests the issue is in the display resume path, possibly involving: - DC state restore - HDMI link training - DDC/EDID communication - atomic modeset reconstruction --- Conclusion: This is likely a regression in the AMDGPU display resume path, where EDID read fails after resume, preventing HDMI output from being restored. --- Additional notes: This issue was bisected between Linux 6.3 (good) and 6.4 (bad), with the transition point identified as a KVM merge commit. While not directly related to AMDGPU, it may have indirectly exposed this issue via timing/order changes. --- If needed, I can provide: - full journalctl logs - full bisect log - additional testing (kernel params, debug options) ________________________________ De: Danilo Machado <[email protected]> Enviado: quinta-feira, 26 de março de 2026 20:38 Para: [email protected] <[email protected]> Cc: Alex Deucher <[email protected]>; [email protected] <[email protected]> Assunto: [REGRESSION][bisected] amdgpu/tonga: HDMI no signal after suspend/resume Hi all, Thanks again for your feedback. I took a closer look at the bisect results and system behavior, and I’d like to provide a more complete and consolidated report. ________________________________ Hardware: * GPU: AMD Radeon R9 380 (Tonga, GCN 3) * CPU: AMD Ryzen 5 5500 * RAM: 16 GB * Display: HDMI Software: * Driver: amdgpu * Kernel range tested: 6.3 (good) → 6.4 (bad) ________________________________ Summary: This is a reproducible suspend/resume regression affecting HDMI output. * Linux 6.3 → working correctly * Linux 6.4+ → regression present ________________________________ Behavior: After suspend/resume: * HDMI output does not recover ("no signal") * System may freeze under X11 * Wayland does not show the same hard failure Additionally: * Using "deep" sleep: * full system lockup after resume * Using "s2idle": * system resumes without hard lock * however, graphical session may return in a partially broken state ________________________________ Bisect result: A full git bisect was performed between Linux 6.3 and 6.4. First bad commit: b3c98052d46948a8d65d2778c7f306ff38366aac ("Merge tag 'kvm-x86-vmx-6.4'") All intermediate commits in that range were consistently tested as GOOD. ________________________________ Analysis: Although the bisected commit is in KVM and unlikely to directly affect AMDGPU, the transition point is consistent and reproducible. This suggests the regression may be indirectly triggered (e.g. timing or ordering changes during resume), rather than caused directly by that merge. Based on observed behavior, this appears related to the display resume path, possibly involving: * DC state restore after resume * HDMI link training * EDID re-read * atomic modeset state reconstruction The difference between "deep" and "s2idle" also suggests a failure during full GPU/display reinitialization. ________________________________ Conclusion: This appears to be a latent issue exposed by changes introduced during the 6.4 merge window, rather than a direct regression in the bisected commit itself. ________________________________ If helpful, I can assist further by: * providing full bisect logs * capturing detailed dmesg/journalctl before and after resume * testing patches or debug options * narrowing the range further if needed I really appreciate the work on AMDGPU and would be glad to help within my limits to investigate this further. Thanks again for your time. Best regards, Danilo Note: I had some email client configuration issues earlier, which may have caused duplicate messages or formatting problems. These have now been resolved — apologies for any inconvenience.
