[PATCH v3 0/2] drm: replace simple display pipe users with atomic helpers
From: Ze Huang <hidden>
Date: 2026-07-26 19:43:35
Also in:
imx, linux-aspeed, lkml, xen-devel
struct drm_simple_display_pipe was meant to simplify simple DRM drivers, but instead adds an extra wrapper around normal DRM atomic helper setup. As noted in Documentation/gpu/todo.rst, remaining users should be converted to regular atomic helpers and stop depending on the simple-KMS interfaces. Each patch replaces drm_simple_display_pipe_init() with explicit primary plane, CRTC and encoder setup, and moves the old simple-pipe callbacks into regular plane and CRTC helper callbacks named according to local driver conventions. The conversions preserve helper behavior that used to be implicit in drm_simple_kms_helper.c, including plane-state validation, CRTC primary-plane checks, affected-plane propagation, framebuffer prepare handling, and existing event/vblank flow where applicable. Result is less helper indirection and more explicit driver-side atomic wiring, with no remaining simple-KMS dependency in these drivers. Changes are build-tested only. No hardware testing has been performed. This patch is based on drm-next-2026-06-27. AI usage disclosure: - AI tools were also used to review the code and suggest code changes for the DRM atomic conversion. Thanks, Ze Huang Signed-off-by: Ze Huang <redacted> --- Changes in v3: - Add a new preparatory patch to avoid duplicate clk_per enables in imx-lcdc pipe update after CRTC enable. - Use commit-local atomic state in enable/update/check paths. - Link to v2: https://patch.msgid.link/20260716-drm-simple-kms-removal-v2-1-7e4a6b8528e6@oss.qualcomm.com/ Changes in v2: - use 'commit' as name of struct drm_atomic_commit in atomic helpers - improve control flow in *_crtc_helper_atomic_check() and *_plane_helper_atomic_check() - Moved page-flip/vblank event handling out of plane update paths and into CRTC atomic_flush(), using atomic_flush and disable paths - decide clock disable by old crtc state - add calls to drm_crtc_vblank_on() and drm_crtc_vblank_off() in crtc atomic_enable() and atomic_disbale() - test crtc_state->enable before mode size check - Link to v1: https://patch.msgid.link/20260705-drm-simple-kms-removal-v1-0-b4e1ca053623@oss.qualcomm.com --- Ze Huang (2): drm/imx/lcdc: avoid duplicate clk_per enable drm/imx: replace struct drm_simple_display_pipe with regular atomic helpers drivers/gpu/drm/imx/lcdc/imx-lcdc.c | 263 ++++++++++++++++++++++++++---------- 1 file changed, 190 insertions(+), 73 deletions(-) --- base-commit: 3696d07837d1df13a5603d77f667685e7dfb3c53 change-id: 20260704-drm-simple-kms-removal-01a031c6a129 Best regards, -- Ze Huang [off-list ref]