rcd: update dqe state when rcd state is changed

RCD state in DQE is not updated correctly when it is changed. The patch
sets the color_mgmt_changed flag when the state is changed to trigger
dqe update.

Bug: 231553814
Test: Rotate RCD layer when ATC is enabled
Signed-off-by: Yichi Chen <yichichen@google.com>
Change-Id: If420c996d348094bd580878de0f1d0826aa03b4d
diff --git a/samsung/exynos_drm_crtc.c b/samsung/exynos_drm_crtc.c
index 0f5fd3e..6a5987a 100644
--- a/samsung/exynos_drm_crtc.c
+++ b/samsung/exynos_drm_crtc.c
@@ -161,7 +161,6 @@
 	const struct decon_device *decon = exynos_crtc->ctx;
 	const struct exynos_dqe *dqe = decon->dqe;
 	uint32_t max_bpc;
-	uint32_t rcd_mask;
 
 	DRM_DEBUG("%s +\n", __func__);
 
@@ -222,8 +221,11 @@
 		new_exynos_state->skip_update = true;
 
 	if (decon->rcd) {
+		uint32_t rcd_mask = crtc_state->plane_mask & exynos_crtc->rcd_plane_mask;
+		uint32_t old_rcd_mask = old_crtc_state->plane_mask & exynos_crtc->rcd_plane_mask;
+
 		new_exynos_state->dqe.rcd_enabled = false;
-		rcd_mask = crtc_state->plane_mask & exynos_crtc->rcd_plane_mask;
+		crtc_state->color_mgmt_changed |= rcd_mask != old_rcd_mask;
 
 		if (rcd_mask) {
 			drm_atomic_crtc_state_for_each_plane_state(plane, plane_state, crtc_state) {