diff options
-rw-r--r-- | samsung/exynos_drm_crtc.c | 6 |
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) { |