OSDN Git Service

drm/msm/dpu: Reapply CTM if modeset is needed
authorJessica Zhang <quic_jesszhan@quicinc.com>
Wed, 18 Jan 2023 23:38:48 +0000 (15:38 -0800)
committerDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Sat, 21 Jan 2023 10:23:32 +0000 (12:23 +0200)
Add a !drm_atomic_crtc_needs_modeset() check to
_dpu_crtc_setup_cp_blocks() so that CTM is reapplied if the LM/DSPP
blocks were reallocated during modeset or after a suspend/resume.

Changes in V2:
- Fixed commit message

Changes in V3:
- Added mention of suspend/resume case back to commit message

Closes: https://gitlab.freedesktop.org/drm/msm/-/issues/23
Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com>
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/519151/
Link: https://lore.kernel.org/r/20230118233848.611-1-quic_jesszhan@quicinc.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c

index c264801..4181903 100644 (file)
@@ -748,7 +748,7 @@ static void _dpu_crtc_setup_cp_blocks(struct drm_crtc *crtc)
        int i;
 
 
-       if (!state->color_mgmt_changed)
+       if (!state->color_mgmt_changed && !drm_atomic_crtc_needs_modeset(state))
                return;
 
        for (i = 0; i < cstate->num_mixers; i++) {