[PATCH v3 00/37] drm/connector: Convert all drivers to atomic_create_state and remove reset
Thomas Zimmermann
tzimmermann at suse.de
Mon Nov 2 00:41:50 PST 2026
Hi Maxime
Am 30.10.26 um 16:13 schrieb Maxime Ripard:
> This is a follow-up to the plane and CRTC reset removal series, and
> part of a larger effort to remove the reset hook from all KMS objects.
>
> The connector reset hook is overloaded: it is called both at probe
> time to create the initial software state and during suspend/resume to
> reset hardware and software state. These two roles have different
> requirements, and the reset hook is not fallible, making error
> handling difficult for the initial state allocation path.
>
> While reset has the semantics to reset both the software and hardware
> state, the vast majority of implementations and all the helpers only
> reset the software state, making them equivalent to
> atomic_create_state in practice. The atomic_create_state hook makes
> this explicit: it only allocates and initializes a pristine state
> without any side effect, and returns the state pointer or an ERR_PTR
> on failure.
>
> This series converts all connector drivers tree-wide from the reset hook
> to atomic_create_state, then removes the reset hook from struct
> drm_connector_funcs entirely. The conversions were done using a
> combination of Coccinelle semantic patches, mechanical one-line
> replacements and manual adjustments.
>
> Signed-off-by: Maxime Ripard <mripard at kernel.org>
Reviewed-by: Thomas Zimmermann <tzimmermann at suse.de>
for the entire series.
Best regards
Thomas
> ---
> Changes in v3:
> - Fix error path in dw-hdmi
> - Fix test error path for amdgpu kunit tests
> - Fix nouveau legacy path
> - Link to v2: https://lore.kernel.org/r/20261022-drm-no-more-connector-reset-v2-0-0b7e4e85b1e8@kernel.org
>
> Changes in v2:
> - Change the parameter order of __drm_atomic_helper_connector_hdmi_state_init
> - Fixed state argument casing for drm_atomic_helper_connector_tv_margins_state_init
> and drm_atomic_helper_connector_tv_state_init
> - Put atomic_create_state before atomic_duplicate_state
> - Fix state allocation for MST and WB connectors
> - Link to v1:
> https://lore.kernel.org/r/20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org
>
> ---
> Maxime Ripard (37):
> drm/amdgpu: vkms: Switch to drm_atomic_helper_connector_create_state
> drm/bridge: analogix-anx6345: Switch to drm_atomic_helper_connector_create_state
> drm/bridge: analogix-anx78xx: Switch to drm_atomic_helper_connector_create_state
> drm/bridge: chrontel-ch7033: Switch to drm_atomic_helper_connector_create_state
> drm/bridge: nxp-ptn3460: Switch to drm_atomic_helper_connector_create_state
> drm/panel: Switch to drm_atomic_helper_connector_create_state
> drm/bridge: synopsys: dw-hdmi: Switch to drm_atomic_helper_connector_create_state
> drm/bridge: tc358767: Switch to drm_atomic_helper_connector_create_state
> drm/bridge: tda998x: Switch to drm_atomic_helper_connector_create_state
> drm/bridge: ti-tfp410: Switch to drm_atomic_helper_connector_create_state
> drm/exynos: Switch to drm_atomic_helper_connector_create_state
> drm/fsl-dcu: Switch to drm_atomic_helper_connector_create_state
> drm/loongson: Switch to drm_atomic_helper_connector_create_state
> drm/mipi-dbi: Switch to drm_atomic_helper_connector_create_state
> drm/renesas: shmobile: Switch to drm_atomic_helper_connector_create_state
> drm/sitronix: st7571: Switch to drm_atomic_helper_connector_create_state
> drm/sti: Switch to drm_atomic_helper_connector_create_state
> drm/sun4i: Switch to drm_atomic_helper_connector_create_state
> drm/tegra: Switch to drm_atomic_helper_connector_create_state
> drm/tests: Switch to drm_atomic_helper_connector_create_state
> drm/tiny: arcpgu: Switch to drm_atomic_helper_connector_create_state
> drm/tiny: sharp: Switch to drm_atomic_helper_connector_create_state
> drm/virtio: Switch to drm_atomic_helper_connector_create_state
> drm/vkms: Switch to drm_atomic_helper_connector_create_state
> drm/xen: Switch to drm_atomic_helper_connector_create_state
> drm/bridge: synopsys: dw-hdmi: Convert to atomic_create_state
> drm/meson: Convert to atomic_create_state
> drm/sun4i: hdmi: Convert to atomic_create_state
> drm/sun4i: tv: Convert to atomic_create_state
> drm/tests: hdmi: Convert to atomic_create_state
> drm/connector: Remove drm_atomic_helper_connector_reset()
> drm/amdgpu: dm: Convert to atomic_create_state
> drm/i915: Convert to atomic_create_state
> drm/nouveau: Convert to atomic_create_state
> drm/tegra: Convert to atomic_create_state
> drm/connector: Remove __drm_atomic_helper_connector_reset()
> drm/connector: Remove reset
>
> drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 2 +-
> .../amd/display/amdgpu_dm/amdgpu_dm_connector.c | 32 ++---
> .../amd/display/amdgpu_dm/amdgpu_dm_connector.h | 3 +-
> .../amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 11 +-
> .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c | 17 ++-
> .../amdgpu_dm/tests/amdgpu_dm_connector_test.c | 102 +++++++++++-----
> drivers/gpu/drm/bridge/analogix/analogix-anx6345.c | 2 +-
> drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c | 2 +-
> drivers/gpu/drm/bridge/chrontel-ch7033.c | 2 +-
> drivers/gpu/drm/bridge/nxp-ptn3460.c | 2 +-
> drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 14 ++-
> drivers/gpu/drm/bridge/tc358767.c | 2 +-
> drivers/gpu/drm/bridge/tda998x_drv.c | 2 +-
> drivers/gpu/drm/bridge/ti-tfp410.c | 2 +-
> drivers/gpu/drm/display/drm_hdmi_state_helper.c | 3 +-
> drivers/gpu/drm/drm_atomic_state_helper.c | 43 -------
> drivers/gpu/drm/drm_connector.c | 8 --
> drivers/gpu/drm/drm_mode_config.c | 4 +-
> drivers/gpu/drm/drm_panel.c | 4 +-
> drivers/gpu/drm/exynos/exynos_drm_dpi.c | 2 +-
> drivers/gpu/drm/exynos/exynos_drm_vidi.c | 2 +-
> drivers/gpu/drm/exynos/exynos_hdmi.c | 2 +-
> drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c | 2 +-
> drivers/gpu/drm/i915/display/intel_connector.c | 6 +-
> drivers/gpu/drm/i915/display/intel_sdvo.c | 6 +-
> drivers/gpu/drm/loongson/lsdc_output_7a1000.c | 2 +-
> drivers/gpu/drm/loongson/lsdc_output_7a2000.c | 4 +-
> drivers/gpu/drm/meson/meson_encoder_hdmi.c | 12 +-
> drivers/gpu/drm/nouveau/dispnv50/disp.c | 25 ++--
> drivers/gpu/drm/nouveau/nouveau_connector.c | 129 ++++++++++++++++-----
> drivers/gpu/drm/nouveau/nouveau_connector.h | 3 +-
> drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c | 2 +-
> drivers/gpu/drm/sitronix/st7571.c | 2 +-
> drivers/gpu/drm/sti/sti_dvo.c | 2 +-
> drivers/gpu/drm/sti/sti_hda.c | 2 +-
> drivers/gpu/drm/sti/sti_hdmi.c | 2 +-
> drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 16 ++-
> drivers/gpu/drm/sun4i/sun4i_lvds.c | 2 +-
> drivers/gpu/drm/sun4i/sun4i_rgb.c | 2 +-
> drivers/gpu/drm/sun4i/sun4i_tv.c | 16 ++-
> drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 2 +-
> drivers/gpu/drm/tegra/dsi.c | 17 ++-
> drivers/gpu/drm/tegra/hdmi.c | 2 +-
> drivers/gpu/drm/tegra/sor.c | 13 +--
> drivers/gpu/drm/tests/drm_atomic_commit_test.c | 2 +-
> drivers/gpu/drm/tests/drm_atomic_test.c | 2 +-
> drivers/gpu/drm/tests/drm_connector_test.c | 4 +-
> drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c | 16 ++-
> drivers/gpu/drm/tests/drm_probe_helper_test.c | 2 +-
> drivers/gpu/drm/tiny/arcpgu.c | 2 +-
> drivers/gpu/drm/tiny/sharp-memory.c | 2 +-
> drivers/gpu/drm/virtio/virtgpu_display.c | 2 +-
> drivers/gpu/drm/vkms/vkms_connector.c | 2 +-
> drivers/gpu/drm/vkms/vkms_writeback.c | 2 +-
> drivers/gpu/drm/xen/xen_drm_front_conn.c | 2 +-
> include/drm/drm_atomic_state_helper.h | 3 -
> include/drm/drm_connector.h | 12 --
> include/drm/drm_mipi_dbi.h | 2 +-
> 58 files changed, 351 insertions(+), 236 deletions(-)
> ---
> base-commit: 91f52e99824b0beebb48cad51bbda81437af8664
> change-id: 20260709-drm-no-more-connector-reset-45ee14d7c62c
>
> Best regards,
--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
GF: Stefan Gaiser, Jochen Jaser, Abhinav Puri, (HRB 36809, AG Nürnberg)
More information about the linux-amlogic
mailing list