msm/disp/dpu: allow atomic_check in PSR usecase
authorVinod Polimera <quic_vpolimer@quicinc.com>
Fri, 31 Mar 2023 13:58:33 +0000 (19:28 +0530)
committerDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Thu, 6 Apr 2023 17:29:43 +0000 (20:29 +0300)
Certain flags like dirty_fb will be updated into the plane state
during crtc atomic_check. Allow those updates during PSR commit.

Reported-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/all/20230326162723.3lo6pnsfdwzsvbhj@ripper/
Signed-off-by: Vinod Polimera <quic_vpolimer@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Tested-by: Douglas Anderson <dianders@chromium.org>
Patchwork: https://patchwork.freedesktop.org/patch/530208/
Link: https://lore.kernel.org/r/1680271114-1534-3-git-send-email-quic_vpolimer@quicinc.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c

index bdafbbd409671eb3b441216ed547ff6b6cbac255..cc66ddffe6723b748134fd2a3def11096ff033e0 100644 (file)
@@ -1194,7 +1194,7 @@ static int dpu_crtc_atomic_check(struct drm_crtc *crtc,
 
        bool needs_dirtyfb = dpu_crtc_needs_dirtyfb(crtc_state);
 
-       if (!crtc_state->enable || !crtc_state->active) {
+       if (!crtc_state->enable || !drm_atomic_crtc_effectively_active(crtc_state)) {
                DRM_DEBUG_ATOMIC("crtc%d -> enable %d, active %d, skip atomic_check\n",
                                crtc->base.id, crtc_state->enable,
                                crtc_state->active);