Re: [PATCH v2 00/37] drm/atomic: Get rid of existing states (not really)

From: Ville Syrjälä
Date: Wed Sep 03 2025 - 15:10:18 EST


On Tue, Sep 02, 2025 at 11:34:59AM +0200, Maxime Ripard wrote:
> Hi,
>
> Here's a series to get rid of the drm_atomic_helper_get_existing_*_state
> accessors.
>
> The initial intent was to remove the __drm_*_state->state pointer to
> only rely on old and new states, but we still need it now to know which
> of the two we need to free: if a state has not been committed (either
> dropped or checked only), then we need to free the new one, if it has
> been committed we need to free the old state.
>
> Thus, the state pointer is kept (and documented) only to point to the
> state we should free eventually.
>
> All users have been converted to the relevant old or new state
> accessors.
>
> This was tested on tidss.
>
> Let me know what you think,
> Maxime
>
> Signed-off-by: Maxime Ripard <mripard@xxxxxxxxxx>

<replying again to see if my smtp issues are now solved...>

Other than the pre-existing ingenic private state issue that
Dmitry spotted I didn't see anything obviously wrong.

So apart from that the series is
Reviewed-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>

> ---
> Changes in v2:
> - Dropped the first and second patches
> - Reworked the recipient list to be nicer with SMTPs
> - Link to v1: https://lore.kernel.org/r/20250825-drm-no-more-existing-state-v1-0-f08ccd9f85c9@xxxxxxxxxx
>
> ---
> Maxime Ripard (37):
> drm/atomic: Convert drm_atomic_get_connector_state() to use new connector state
> drm/atomic: Remove unused drm_atomic_get_existing_connector_state()
> drm/atomic: Document __drm_connectors_state state pointer
> drm/atomic: Convert __drm_atomic_get_current_plane_state() to modern accessor
> drm/atomic: Convert drm_atomic_get_plane_state() to use new plane state
> drm/vkms: Convert vkms_crtc_atomic_check() to use new plane state
> drm/tilcdc: crtc: Use drm_atomic_helper_check_crtc_primary_plane()
> drm/atomic: Remove unused drm_atomic_get_existing_plane_state()
> drm/atomic: Document __drm_planes_state state pointer
> drm/atomic: Convert drm_atomic_get_crtc_state() to use new connector state
> drm/ingenic: ipu: Switch to drm_atomic_get_new_crtc_state()
> drm/arm/malidp: Switch to drm_atomic_get_new_crtc_state()
> drm/armada: Switch to drm_atomic_get_new_crtc_state()
> drm/atmel-hlcdc: Switch to drm_atomic_get_new_crtc_state()
> drm/exynos: Switch to drm_atomic_get_new_crtc_state()
> drm/imx-dc: Switch to drm_atomic_get_new_crtc_state()
> drm/imx-dcss: Switch to drm_atomic_get_new_crtc_state()
> drm/imx-ipuv3: Switch to drm_atomic_get_new_crtc_state()
> drm/ingenic: Switch to drm_atomic_get_new_crtc_state()
> drm/kmb: Switch to drm_atomic_get_new_crtc_state()
> drm/logicvc: Switch to drm_atomic_get_new_crtc_state()
> drm/loongson: Switch to drm_atomic_get_new_crtc_state()
> drm/mediatek: Switch to drm_atomic_get_new_crtc_state()
> drm/msm/mdp5: Switch to drm_atomic_get_new_crtc_state()
> drm/omap: Switch to drm_atomic_get_new_crtc_state()
> drm/rockchip: Switch to drm_atomic_get_new_crtc_state()
> drm/sun4i: Switch to drm_atomic_get_new_crtc_state()
> drm/tegra: Switch to drm_atomic_get_new_crtc_state()
> drm/tilcdc: Switch to drm_atomic_get_new_crtc_state()
> drm/vboxvideo: Switch to drm_atomic_get_new_crtc_state()
> drm/vc4: Switch to drm_atomic_get_new_crtc_state()
> drm/atomic: Switch to drm_atomic_get_new_crtc_state()
> drm/framebuffer: Switch to drm_atomic_get_new_crtc_state()
> drm/atomic: Remove unused drm_atomic_get_existing_crtc_state()
> drm/atomic: Document __drm_crtcs_state state pointer
> drm/atomic: Convert drm_atomic_get_private_obj_state() to use new plane state
> drm/atomic: Document __drm_private_objs_state state pointer
>
> drivers/gpu/drm/arm/malidp_planes.c | 2 +-
> drivers/gpu/drm/armada/armada_plane.c | 3 +-
> drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 2 +-
> drivers/gpu/drm/drm_atomic.c | 21 ++--
> drivers/gpu/drm/drm_framebuffer.c | 2 +-
> drivers/gpu/drm/exynos/exynos_drm_plane.c | 2 +-
> drivers/gpu/drm/imx/dc/dc-plane.c | 2 +-
> drivers/gpu/drm/imx/dcss/dcss-plane.c | 4 +-
> drivers/gpu/drm/imx/ipuv3/ipuv3-plane.c | 3 +-
> drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 3 +-
> drivers/gpu/drm/ingenic/ingenic-ipu.c | 4 +-
> drivers/gpu/drm/kmb/kmb_plane.c | 3 +-
> drivers/gpu/drm/logicvc/logicvc_layer.c | 4 +-
> drivers/gpu/drm/loongson/lsdc_plane.c | 2 +-
> drivers/gpu/drm/mediatek/mtk_plane.c | 3 +-
> drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c | 7 +-
> drivers/gpu/drm/omapdrm/omap_plane.c | 2 +-
> drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 6 +-
> drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 2 +-
> drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 3 +-
> drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 3 +-
> drivers/gpu/drm/tegra/dc.c | 2 +-
> drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 9 +-
> drivers/gpu/drm/tilcdc/tilcdc_plane.c | 3 +-
> drivers/gpu/drm/vboxvideo/vbox_mode.c | 8 +-
> drivers/gpu/drm/vc4/vc4_plane.c | 6 +-
> drivers/gpu/drm/vkms/vkms_crtc.c | 4 +-
> include/drm/drm_atomic.h | 144 ++++++++++++------------
> 28 files changed, 124 insertions(+), 135 deletions(-)
> ---
> base-commit: 7fa4d8dc380fbd81a9d702a855c50690c9c6442c
> change-id: 20250825-drm-no-more-existing-state-9b3252c1a33b
>
> Best regards,
> --
> Maxime Ripard <mripard@xxxxxxxxxx>

--
Ville Syrjälä
Intel