Hi Leo, On 2022-09-28 01:13, sunpeng.li@xxxxxxx wrote:
From: Leo Li <sunpeng.li@xxxxxxx> [Why] Enabling Z10 optimizations allows DMUB to disable the OTG during PSR link-off. This theoretically saves power by putting more of the display hardware to sleep. However, we observe that with PSR SU, it causes visual artifacts, higher power usage, and potential system hang. This is partly due to an odd behavior with the VStartup interrupt used to signal DRM vblank events. If the OTG is toggled on/off during a PSR link on/off cycle, the vstartup interrupt fires twice in quick succession. This generates incorrectly timed vblank events. Additionally, it can cause cursor updates to generate visual artifacts. Note that this is not observed with PSR1 since PSR is fully disabled when there are vblank event requestors. Cursor updates are also artifact-free, likely because there are no selectively-updated (SU) frames that can generate artifacts. [How] A potential solution is to disable z10 idle optimizations only when fast updates (flips & cursor updates) are committed. A mechanism to do so would require some thoughtful design. Let's just disable idle optimizations for PSR2 for now.
I can confirm that this patch fixes the issues I had. Thanks!
Fixes: 7cc191ee7621 ("drm/amd/display: Implement MPO PSR SU") Signed-off-by: Leo Li <sunpeng.li@xxxxxxx>
You can add: Tested-by: August Wikerfors <git@xxxxxxxxxxxxxxxxxx> Regards, August Wikerfors