summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYichi Chen <yichichen@google.com>2022-05-19 16:38:51 +0800
committerYichi Chen <yichichen@google.com>2022-05-20 02:48:22 +0800
commitb9d8b8f33e6b6e1636c08fa83ae484213a7a0db9 (patch)
treec05a7ec4bab910922bb598bc6f219cad8b6e2c42
parent376501f4c1c900a53a12258794916a1c4ffcee1a (diff)
downloaddisplay-android-gs-raviole-5.10-android13.tar.gz
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
-rw-r--r--samsung/exynos_drm_crtc.c6
1 files changed, 4 insertions, 2 deletions
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 @@ static int exynos_crtc_atomic_check(struct drm_crtc *crtc,
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 @@ static int exynos_crtc_atomic_check(struct drm_crtc *crtc,
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) {