[PATCH 24/26] drm/amd/display: Reset planes for color management changes

sunpeng.li at amd.com sunpeng.li at amd.com
Mon May 27 19:51:03 UTC 2019

From: Nicholas Kazlauskas <nicholas.kazlauskas at amd.com>

For commits with allow_modeset=false and CRTC degamma changes the planes
aren't reset. This results in incorrect rendering.

Reset the planes when color management has changed on the CRTC.
Technically this will include regamma changes as well, but it doesn't
really after legacy userspace since those commit with

Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas at amd.com>
Reviewed-by: Harry Wentland <Harry.Wentland at amd.com>
Acked-by: Leo Li <sunpeng.li at amd.com>
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index c10a398..22546c3 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -6443,6 +6443,10 @@ static bool should_reset_plane(struct drm_atomic_state *state,
 	if (!new_crtc_state)
 		return true;
+	/* CRTC Degamma changes currently require us to recreate planes. */
+	if (new_crtc_state->color_mgmt_changed)
+		return true;
 	if (drm_atomic_crtc_needs_modeset(new_crtc_state))
 		return true;

More information about the amd-gfx mailing list