As pointed out by Simona, the drm_atomic_helper_check_modeset() and drm_atomic_helper_check() require the former function is rerun if the driver's callbacks modify crtc_state->mode_changed. MSM is one of the drivers which failed to follow this requirement. Rework the MSM / DPU driver to follow the requirements of the drm_atomic_helper_check_modeset() helper function. Reported-by: Simona Vetter <simona.vetter@xxxxxxxx> Link: https://lore.kernel.org/dri-devel/ZtW_S0j5AEr4g0QW@phenom.ffwll.local/ Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> --- Changes in v2: - Dropped drm-core patches (one was applied and another one is disputed) - Link to v1: https://lore.kernel.org/r/20241222-drm-dirty-modeset-v1-0-0e76a53eceb9@xxxxxxxxxx --- Dmitry Baryshkov (4): drm/msm/dpu: don't use active in atomic_check() drm/msm/dpu: move needs_cdm setting to dpu_encoder_get_topology() drm/msm/dpu: simplify dpu_encoder_get_topology() interface drm/msm/dpu: don't set crtc_state->mode_changed from atomic_check() drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 4 -- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 82 ++++++++++++++++++----------- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h | 4 ++ drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 26 +++++++++ drivers/gpu/drm/msm/msm_atomic.c | 13 ++++- drivers/gpu/drm/msm/msm_kms.h | 7 +++ 6 files changed, 101 insertions(+), 35 deletions(-) --- base-commit: 2c38461deb29fda236f40950f24d898c49b04e71 change-id: 20241222-drm-dirty-modeset-88079bd27ae6 Best regards, -- Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>