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.
The series 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 conversion preserves 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 this driver. Changes are build-tested only. No hardware testing has been performed. The patches are based on v7.3-rc2. 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 <[email protected]> --- Changes in v4: - Use drm_crtc_vblank_atomic_flush() instead of the driver's own flush callback. - Replace the reset callbacks with the atomic_create_state helpers and use drm_mode_config_create_initial_state() in probe. - Link to v3: https://lore.kernel.org/all/20260727-drm-simple-kms-removal-v3-0-de36e534f...@oss.qualcomm.com/ 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-7e4a6b852...@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-b4e1ca053...@oss.qualcomm.com To: Maarten Lankhorst <[email protected]> To: Maxime Ripard <[email protected]> To: Thomas Zimmermann <[email protected]> To: David Airlie <[email protected]> To: Simona Vetter <[email protected]> To: Frank Li <[email protected]> To: Sascha Hauer <[email protected]> To: Pengutronix Kernel Team <[email protected]> To: Fabio Estevam <[email protected]> To: Philipp Zabel <[email protected]> To: Uwe Kleine-König <[email protected]> To: Marian Cichy <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] --- 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 | 249 +++++++++++++++++++++++++----------- 1 file changed, 175 insertions(+), 74 deletions(-) --- base-commit: 5e036ce12de91c6fd674dad33b169c6150be2a7a change-id: 20260919-b4-imx-simple-kms-v4-3f7d32e17548 Best regards, -- Ze Huang <[email protected]>
