drm/msm/disp/dpu: check for crtc enable rather than crtc active to release shared...
authorVinod Polimera <quic_vpolimer@quicinc.com>
Thu, 2 Mar 2023 16:33:07 +0000 (22:03 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 11 May 2023 14:03:08 +0000 (23:03 +0900)
[ Upstream commit b6975693846b562c4d3e0e60cc884affc5bdac00 ]

According to KMS documentation, The driver must not release any shared
resources if active is set to false but enable still true.

Fixes: ccc862b957c6 ("drm/msm/dpu: Fix reservation failures in modeset")
Signed-off-by: Vinod Polimera <quic_vpolimer@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/524726/
Link: https://lore.kernel.org/r/1677774797-31063-5-git-send-email-quic_vpolimer@quicinc.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c

index 9c6817b..547f9f2 100644 (file)
@@ -654,7 +654,7 @@ static int dpu_encoder_virt_atomic_check(
                if (drm_atomic_crtc_needs_modeset(crtc_state)) {
                        dpu_rm_release(global_state, drm_enc);
 
-                       if (!crtc_state->active_changed || crtc_state->active)
+                       if (!crtc_state->active_changed || crtc_state->enable)
                                ret = dpu_rm_reserve(&dpu_kms->rm, global_state,
                                                drm_enc, crtc_state, topology);
                }