[PATCH 0/1] drm/amd/display: allow self-refresh exit while entry is blocked
David Weber <[email protected]> Thu, 30 Jul 2026 05:31:59 +0200
| Newsgroups | org.freedesktop.lists.amd-gfx,org.freedesktop.lists.dri-devel |
|---|---|
| Message-ID | <[email protected]> |
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