mirror_ubuntu-kernels/drivers/gpu/drm/amd/display
Leo Li 83ca5fb40e drm/amd/display: Prevent OTG shutdown during PSR SU
[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.

Fixes: 7cc191ee76 ("drm/amd/display: Implement MPO PSR SU")
Reported-by: August Wikerfors <git@augustwikerfors.se>
Link: https://lore.kernel.org/r/c1f8886a-5624-8f49-31b1-e42b6d20dcf5@augustwikerfors.se/
Tested-by: August Wikerfors <git@augustwikerfors.se>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Leo Li <sunpeng.li@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2022-09-29 10:07:42 -04:00
..
amdgpu_dm drm/amd/display: Prevent OTG shutdown during PSR SU 2022-09-29 10:07:42 -04:00
dc drm/amd/display: fill in clock values when DPM is not enabled 2022-09-27 18:00:01 -04:00
dmub drm/amd/display: Add support for manual DMUB FAMS trigger 2022-07-25 17:17:15 -04:00
include drm/amd/display: add chip revision to DCN32 2022-08-16 18:09:25 -04:00
modules drm/amd/display: Limit user regamma to a valid value 2022-09-13 14:27:00 -04:00
Kconfig drm for 5.20/6.0 2022-08-03 19:52:08 -07:00
Makefile
TODO