Hi, I have a ThinkPad T14s Gen 4 with a Ryzen 5 PRO 7540U and Radeon 740M (Phoenix1, DCN 3.1.4). Its internal eDP panel advertises PSR version 3, but the driver configures it for PSR1. This system has experienced PSR-related instability for a long time.
While testing patches for: https://gitlab.freedesktop.org/drm/amd/-/work_items/4141 I had the idea of developing a PSR stress test suite to make these problems easier to reproduce and patches easier to test. Another goal was to provide a larger test suite that could detect regressions in new kernel releases. The project is still experimental and the code needs considerable cleanup, but if you are interested, its README is available here: https://gitlab.com/weber.aulendorf/amdgpu-psr-stress/-/blob/psr-coverage-clean/README.md?ref_type=heads I can now reproduce a flip timeout quite reliably with it. Branch: psr-coverage-clean Leave SDDM running, switch to another VT, and run: ./quiet_tty.sh; ./freeze-vt-handoff.sh The script repeatedly switches between the SDDM login screen and a text console, modifies the console framebuffer, and immediately lets a direct-KMS program take control of the display. On Linux 7.2-rc5 with de665f07 ("drm/amd/display: Exit idle optimizations before programming") applied, the timeout usually occurs after a few minutes. dmesg: https://paste.sh/w_knebDa#uKedDECw3b8aasEdb1YBHHaR Tail of the stress log: https://paste.sh/VoRFHrUM#G1MRjBQ97JD9u4TGK_-_SopI I used Claude Opus 5 and Codex GPT-5.6 SOL extensively to analyze the failure and develop this patch. With the patch applied, I have not been able to reproduce the timeout using freeze-vt-handoff.sh. My understanding of the AMD display code is limited, so careful review of the analysis and fix would be particularly welcome. I have tested the resulting behavior on this system. I am not yet convinced that I can maintain the stress suite as a side project: it is very time-consuming, and I only have one system on which to develop and test it. However, some of its ideas might still be useful for future IGT tests. David Weber (1): drm/amd/display: allow self-refresh exit while entry is blocked drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) -- 2.54.0
