[PATCH v2 0/4] drm/msm/dpu: follow rules for drm_atomic_helper_check_modeset()

From: Dmitry Baryshkov
Date: Thu Jan 23 2025 - 07:45:07 EST


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>