All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/75] drm/connector: Convert all drivers to atomic_create_state and remove reset
@ 2026-10-14 17:26 ` Maxime Ripard
  0 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Aun-Ali Zaidi, Christian König,
	Alex Deucher, amd-gfx, Harry Wentland, Leo Li, Rodrigo Siqueira,
	Liviu Dudau, Andrew Jeffery, Joel Stanley, Dave Airlie,
	Jocelyn Falempe, Francesco Dolcini, Ian Ray, Martyn Welch,
	Peter Senna Tschudin, Russell King, Alim Akhtar, Inki Dae,
	Krzysztof Kozlowski, Kyungmin Park, Peter Griffin, Seung-Woo Kim,
	linux-samsung-soc, Alison Wang, Stefan Agner, Tian Tao,
	Xinwei Kong, Yongbang Shi, Dexuan Cui, Long Li, Saurabh Sengar,
	linux-hyperv, Fabio Estevam, Frank Li, Pengutronix Kernel Team,
	Philipp Zabel, Sascha Hauer, imx, Paul Kocialkowski, Huacai Chen,
	Icenowy Zheng, Jianmin Lv, Mingcong Bai, Qianhai Wu, Xi Ruoyao,
	Abhinav Kumar, Dmitry Baryshkov, Jessica Zhang, Marijn Suijten,
	Rob Clark, Sean Paul, freedreno, linux-arm-msm, Gerd Hoffmann,
	spice-devel, virtualization, Geert Uytterhoeven,
	linux-renesas-soc, Marcus Folkesson, Iker Pedrosa,
	Javier Martinez Canillas, Alain Volmat, Raphael Gallais-Pou,
	Alexandre Torgue, Maxime Coquelin, Philippe Cornu,
	Raphael Gallais-Pou, Yannick Fertre, Chen-Yu Tsai, Samuel Holland,
	linux-sunxi, Mikko Perttunen, Thierry Reding, linux-tegra,
	Alexey Brodkin, Hans de Goede, LiangCheng Wang, Alex Lanzano,
	Maíra Canal, Raspberry Pi Kernel Maintenance, Chia-I Wu,
	Dmitry Osipenko, Gurchetan Singh, Haneen Mohammed, Louis Chauvet,
	Melissa Wen, Oleksandr Andrushchenko, Ruben Wauters,
	Jerome Brunet, Kevin Hilman, Martin Blumenstingl, linux-amlogic,
	Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin,
	intel-gfx, intel-xe, Danilo Krummrich, nouveau, Kieran Bingham,
	Laurent Pinchart, Magnus Damm, Tomi Valkeinen,
	Broadcom internal kernel review list, Zack Rusin, Aditya Garg

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@kernel.org>
---
Maxime Ripard (75):
      drm/panel: Add atomic_create_state support
      drm/adp: Switch to drm_atomic_helper_connector_create_state
      drm/amdgpu: vkms: Switch to drm_atomic_helper_connector_create_state
      drm/amdgpu: dm: Switch to drm_atomic_helper_connector_create_state
      drm/arm: komeda: Switch to drm_atomic_helper_connector_create_state
      drm/aspeed: Switch to drm_atomic_helper_connector_create_state
      drm/ast: 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: lontium-lt8912b: Switch to drm_atomic_helper_connector_create_state
      drm/bridge: megachips: 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: sii902x: Switch to drm_atomic_helper_connector_create_state
      drm/bridge: simple-bridge: 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/hisilicon: hibmc: Switch to drm_atomic_helper_connector_create_state
      drm/hyperv: Switch to drm_atomic_helper_connector_create_state
      drm/imx: ipuv3: Switch to drm_atomic_helper_connector_create_state
      drm/logicvc: Switch to drm_atomic_helper_connector_create_state
      drm/loongson: Switch to drm_atomic_helper_connector_create_state
      drm/mgag200: Switch to drm_atomic_helper_connector_create_state
      drm/mipi-dbi: Switch to drm_atomic_helper_connector_create_state
      drm/msm: dpu1: Switch to drm_atomic_helper_connector_create_state
      drm/qxl: 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/sitronix: st7920: Switch to drm_atomic_helper_connector_create_state
      drm/solomon: ssd130x: Switch to drm_atomic_helper_connector_create_state
      drm/sti: Switch to drm_atomic_helper_connector_create_state
      drm/stm: Switch to drm_atomic_helper_connector_create_state
      drm/sun4i: Switch to drm_atomic_helper_connector_create_state
      drm/sysfb: 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: bochs: Switch to drm_atomic_helper_connector_create_state
      drm/tiny: cirrus: Switch to drm_atomic_helper_connector_create_state
      drm/tiny: gm12u320: Switch to drm_atomic_helper_connector_create_state
      drm/tiny: pixpaper: Switch to drm_atomic_helper_connector_create_state
      drm/tiny: repaper: Switch to drm_atomic_helper_connector_create_state
      drm/tiny: sharp: Switch to drm_atomic_helper_connector_create_state
      drm/udl: Switch to drm_atomic_helper_connector_create_state
      drm/vboxvideo: Switch to drm_atomic_helper_connector_create_state
      drm/vc4: 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/atomic-state-helper: Rename connector_tv_margins_reset to state_init
      drm/atomic-state-helper: Rename connector_tv_reset to state_init
      drm/bridge: synopsys: dw-hdmi: Convert to atomic_create_state
      drm/meson: Convert to atomic_create_state
      drm/gud: 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/vc4: hdmi: Convert to atomic_create_state
      drm/vc4: vec: Convert to atomic_create_state
      drm/connector: Remove drm_atomic_helper_connector_reset()
      drm/amdgpu: dm: Convert to atomic_create_state
      drm/malidp: Convert to atomic_create_state
      drm/ast: Convert to atomic_create_state
      drm/i915: Convert to atomic_create_state
      drm/nouveau: Convert to atomic_create_state
      drm/rcar-du: Convert to atomic_create_state
      drm/tegra: Convert to atomic_create_state
      drm/vmwgfx: 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    |  4 +-
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c   | 14 +++-
 .../display/amdgpu_dm/tests/amdgpu_dm_audio_test.c |  2 +-
 .../amdgpu_dm/tests/amdgpu_dm_backlight_test.c     |  2 +-
 .../amdgpu_dm/tests/amdgpu_dm_connector_test.c     | 90 ++++++++++++++--------
 .../display/amdgpu_dm/tests/amdgpu_dm_crc_test.c   |  7 +-
 .../amdgpu_dm/tests/amdgpu_dm_helpers_test.c       |  2 +-
 .../display/amdgpu_dm/tests/amdgpu_dm_irq_test.c   |  2 +-
 .../amdgpu_dm/tests/amdgpu_dm_mst_types_test.c     |  4 +-
 .../display/amdgpu_dm/tests/amdgpu_dm_wb_test.c    |  2 +-
 .../drm/arm/display/komeda/komeda_wb_connector.c   |  2 +-
 drivers/gpu/drm/arm/malidp_mw.c                    | 18 ++---
 drivers/gpu/drm/aspeed/aspeed_gfx_out.c            |  2 +-
 drivers/gpu/drm/ast/ast_dp.c                       | 19 ++---
 drivers/gpu/drm/ast/ast_dp501.c                    |  2 +-
 drivers/gpu/drm/ast/ast_sil164.c                   |  2 +-
 drivers/gpu/drm/ast/ast_vga.c                      |  2 +-
 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/lontium-lt8912b.c           |  2 +-
 .../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c   |  2 +-
 drivers/gpu/drm/bridge/nxp-ptn3460.c               |  2 +-
 drivers/gpu/drm/bridge/sii902x.c                   |  2 +-
 drivers/gpu/drm/bridge/simple-bridge.c             |  2 +-
 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c          | 12 ++-
 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          | 68 ++++------------
 drivers/gpu/drm/drm_connector.c                    |  8 --
 drivers/gpu/drm/drm_mode_config.c                  |  4 +-
 drivers/gpu/drm/drm_panel.c                        | 14 +++-
 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/gud/gud_connector.c                | 20 +++--
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_dp.c     |  2 +-
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c   |  2 +-
 drivers/gpu/drm/hyperv/hyperv_drm_modeset.c        |  2 +-
 drivers/gpu/drm/i915/display/intel_connector.c     |  6 +-
 drivers/gpu/drm/i915/display/intel_sdvo.c          |  6 +-
 drivers/gpu/drm/imx/ipuv3/imx-tve.c                |  2 +-
 drivers/gpu/drm/logicvc/logicvc_interface.c        |  2 +-
 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/mgag200/mgag200_vga.c              |  2 +-
 drivers/gpu/drm/mgag200/mgag200_vga_bmc.c          |  2 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c      |  2 +-
 drivers/gpu/drm/nouveau/dispnv50/disp.c            |  9 ++-
 drivers/gpu/drm/nouveau/nouveau_connector.c        | 25 +++---
 drivers/gpu/drm/nouveau/nouveau_connector.h        |  3 +-
 drivers/gpu/drm/qxl/qxl_display.c                  |  2 +-
 .../gpu/drm/renesas/rcar-du/rcar_du_writeback.c    | 15 ++--
 drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c  |  2 +-
 drivers/gpu/drm/sitronix/st7571.c                  |  2 +-
 drivers/gpu/drm/sitronix/st7920.c                  |  2 +-
 drivers/gpu/drm/solomon/ssd130x.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/stm/lvds.c                         |  2 +-
 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c             | 17 +++-
 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/sysfb/drm_sysfb_helper.h           |  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 | 17 +++-
 drivers/gpu/drm/tests/drm_probe_helper_test.c      |  2 +-
 drivers/gpu/drm/tiny/appletbdrm.c                  |  2 +-
 drivers/gpu/drm/tiny/arcpgu.c                      |  2 +-
 drivers/gpu/drm/tiny/bochs.c                       |  2 +-
 drivers/gpu/drm/tiny/cirrus-qemu.c                 |  2 +-
 drivers/gpu/drm/tiny/gm12u320.c                    |  2 +-
 drivers/gpu/drm/tiny/pixpaper.c                    |  2 +-
 drivers/gpu/drm/tiny/repaper.c                     |  2 +-
 drivers/gpu/drm/tiny/sharp-memory.c                |  2 +-
 drivers/gpu/drm/udl/udl_modeset.c                  |  2 +-
 drivers/gpu/drm/vboxvideo/vbox_mode.c              |  2 +-
 drivers/gpu/drm/vc4/tests/vc4_mock_output.c        |  2 +-
 drivers/gpu/drm/vc4/vc4_hdmi.c                     | 32 ++++++--
 drivers/gpu/drm/vc4/vc4_txp.c                      |  2 +-
 drivers/gpu/drm/vc4/vc4_vec.c                      | 16 +++-
 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/vmwgfx/vmwgfx_kms.c                | 23 ++----
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.h                |  3 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c                |  2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c               |  2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c               |  2 +-
 drivers/gpu/drm/xen/xen_drm_front_conn.c           |  2 +-
 include/drm/drm_atomic_state_helper.h              |  9 +--
 include/drm/drm_connector.h                        | 12 ---
 include/drm/drm_mipi_dbi.h                         |  2 +-
 108 files changed, 392 insertions(+), 331 deletions(-)
---
base-commit: 91f52e99824b0beebb48cad51bbda81437af8664
change-id: 20260709-drm-no-more-connector-reset-45ee14d7c62c

Best regards,
-- 
Maxime Ripard <mripard@kernel.org>


^ permalink raw reply	[flat|nested] 98+ messages in thread

* [PATCH 00/75] drm/connector: Convert all drivers to atomic_create_state and remove reset
@ 2026-10-14 17:26 ` Maxime Ripard
  0 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Aun-Ali Zaidi, Christian König,
	Alex Deucher, amd-gfx, Harry Wentland, Leo Li, Rodrigo Siqueira,
	Liviu Dudau, Andrew Jeffery, Joel Stanley, Dave Airlie,
	Jocelyn Falempe, Francesco Dolcini, Ian Ray, Martyn Welch,
	Peter Senna Tschudin, Russell King, Alim Akhtar, Inki Dae,
	Krzysztof Kozlowski, Kyungmin Park, Peter Griffin, Seung-Woo Kim,
	linux-samsung-soc, Alison Wang, Stefan Agner, Tian Tao,
	Xinwei Kong, Yongbang Shi, Dexuan Cui, Long Li, Saurabh Sengar,
	linux-hyperv, Fabio Estevam, Frank Li, Pengutronix Kernel Team,
	Philipp Zabel, Sascha Hauer, imx, Paul Kocialkowski, Huacai Chen,
	Icenowy Zheng, Jianmin Lv, Mingcong Bai, Qianhai Wu, Xi Ruoyao,
	Abhinav Kumar, Dmitry Baryshkov, Jessica Zhang, Marijn Suijten,
	Rob Clark, Sean Paul, freedreno, linux-arm-msm, Gerd Hoffmann,
	spice-devel, virtualization, Geert Uytterhoeven,
	linux-renesas-soc, Marcus Folkesson, Iker Pedrosa,
	Javier Martinez Canillas, Alain Volmat, Raphael Gallais-Pou,
	Alexandre Torgue, Maxime Coquelin, Philippe Cornu,
	Raphael Gallais-Pou, Yannick Fertre, Chen-Yu Tsai, Samuel Holland,
	linux-sunxi, Jonathan Hunter, Mikko Perttunen, Thierry Reding,
	linux-tegra, Alexey Brodkin, Hans de Goede, LiangCheng Wang,
	Alex Lanzano, Maíra Canal, Dave Stevenson,
	Raspberry Pi Kernel Maintenance, Chia-I Wu, Dmitry Osipenko,
	Gurchetan Singh, Haneen Mohammed, Louis Chauvet, Melissa Wen,
	Oleksandr Andrushchenko, Ruben Wauters, Jerome Brunet,
	Kevin Hilman, Martin Blumenstingl, linux-amlogic, Jani Nikula,
	Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin, intel-gfx,
	intel-xe, Danilo Krummrich, Lyude Paul, nouveau, Kieran Bingham,
	Laurent Pinchart, Magnus Damm, Tomi Valkeinen,
	Broadcom internal kernel review list, Zack Rusin, Aditya Garg

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@kernel.org>
---
Maxime Ripard (75):
      drm/panel: Add atomic_create_state support
      drm/adp: Switch to drm_atomic_helper_connector_create_state
      drm/amdgpu: vkms: Switch to drm_atomic_helper_connector_create_state
      drm/amdgpu: dm: Switch to drm_atomic_helper_connector_create_state
      drm/arm: komeda: Switch to drm_atomic_helper_connector_create_state
      drm/aspeed: Switch to drm_atomic_helper_connector_create_state
      drm/ast: 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: lontium-lt8912b: Switch to drm_atomic_helper_connector_create_state
      drm/bridge: megachips: 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: sii902x: Switch to drm_atomic_helper_connector_create_state
      drm/bridge: simple-bridge: 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/hisilicon: hibmc: Switch to drm_atomic_helper_connector_create_state
      drm/hyperv: Switch to drm_atomic_helper_connector_create_state
      drm/imx: ipuv3: Switch to drm_atomic_helper_connector_create_state
      drm/logicvc: Switch to drm_atomic_helper_connector_create_state
      drm/loongson: Switch to drm_atomic_helper_connector_create_state
      drm/mgag200: Switch to drm_atomic_helper_connector_create_state
      drm/mipi-dbi: Switch to drm_atomic_helper_connector_create_state
      drm/msm: dpu1: Switch to drm_atomic_helper_connector_create_state
      drm/qxl: 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/sitronix: st7920: Switch to drm_atomic_helper_connector_create_state
      drm/solomon: ssd130x: Switch to drm_atomic_helper_connector_create_state
      drm/sti: Switch to drm_atomic_helper_connector_create_state
      drm/stm: Switch to drm_atomic_helper_connector_create_state
      drm/sun4i: Switch to drm_atomic_helper_connector_create_state
      drm/sysfb: 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: bochs: Switch to drm_atomic_helper_connector_create_state
      drm/tiny: cirrus: Switch to drm_atomic_helper_connector_create_state
      drm/tiny: gm12u320: Switch to drm_atomic_helper_connector_create_state
      drm/tiny: pixpaper: Switch to drm_atomic_helper_connector_create_state
      drm/tiny: repaper: Switch to drm_atomic_helper_connector_create_state
      drm/tiny: sharp: Switch to drm_atomic_helper_connector_create_state
      drm/udl: Switch to drm_atomic_helper_connector_create_state
      drm/vboxvideo: Switch to drm_atomic_helper_connector_create_state
      drm/vc4: 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/atomic-state-helper: Rename connector_tv_margins_reset to state_init
      drm/atomic-state-helper: Rename connector_tv_reset to state_init
      drm/bridge: synopsys: dw-hdmi: Convert to atomic_create_state
      drm/meson: Convert to atomic_create_state
      drm/gud: 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/vc4: hdmi: Convert to atomic_create_state
      drm/vc4: vec: Convert to atomic_create_state
      drm/connector: Remove drm_atomic_helper_connector_reset()
      drm/amdgpu: dm: Convert to atomic_create_state
      drm/malidp: Convert to atomic_create_state
      drm/ast: Convert to atomic_create_state
      drm/i915: Convert to atomic_create_state
      drm/nouveau: Convert to atomic_create_state
      drm/rcar-du: Convert to atomic_create_state
      drm/tegra: Convert to atomic_create_state
      drm/vmwgfx: 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    |  4 +-
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c   | 14 +++-
 .../display/amdgpu_dm/tests/amdgpu_dm_audio_test.c |  2 +-
 .../amdgpu_dm/tests/amdgpu_dm_backlight_test.c     |  2 +-
 .../amdgpu_dm/tests/amdgpu_dm_connector_test.c     | 90 ++++++++++++++--------
 .../display/amdgpu_dm/tests/amdgpu_dm_crc_test.c   |  7 +-
 .../amdgpu_dm/tests/amdgpu_dm_helpers_test.c       |  2 +-
 .../display/amdgpu_dm/tests/amdgpu_dm_irq_test.c   |  2 +-
 .../amdgpu_dm/tests/amdgpu_dm_mst_types_test.c     |  4 +-
 .../display/amdgpu_dm/tests/amdgpu_dm_wb_test.c    |  2 +-
 .../drm/arm/display/komeda/komeda_wb_connector.c   |  2 +-
 drivers/gpu/drm/arm/malidp_mw.c                    | 18 ++---
 drivers/gpu/drm/aspeed/aspeed_gfx_out.c            |  2 +-
 drivers/gpu/drm/ast/ast_dp.c                       | 19 ++---
 drivers/gpu/drm/ast/ast_dp501.c                    |  2 +-
 drivers/gpu/drm/ast/ast_sil164.c                   |  2 +-
 drivers/gpu/drm/ast/ast_vga.c                      |  2 +-
 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/lontium-lt8912b.c           |  2 +-
 .../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c   |  2 +-
 drivers/gpu/drm/bridge/nxp-ptn3460.c               |  2 +-
 drivers/gpu/drm/bridge/sii902x.c                   |  2 +-
 drivers/gpu/drm/bridge/simple-bridge.c             |  2 +-
 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c          | 12 ++-
 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          | 68 ++++------------
 drivers/gpu/drm/drm_connector.c                    |  8 --
 drivers/gpu/drm/drm_mode_config.c                  |  4 +-
 drivers/gpu/drm/drm_panel.c                        | 14 +++-
 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/gud/gud_connector.c                | 20 +++--
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_dp.c     |  2 +-
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c   |  2 +-
 drivers/gpu/drm/hyperv/hyperv_drm_modeset.c        |  2 +-
 drivers/gpu/drm/i915/display/intel_connector.c     |  6 +-
 drivers/gpu/drm/i915/display/intel_sdvo.c          |  6 +-
 drivers/gpu/drm/imx/ipuv3/imx-tve.c                |  2 +-
 drivers/gpu/drm/logicvc/logicvc_interface.c        |  2 +-
 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/mgag200/mgag200_vga.c              |  2 +-
 drivers/gpu/drm/mgag200/mgag200_vga_bmc.c          |  2 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c      |  2 +-
 drivers/gpu/drm/nouveau/dispnv50/disp.c            |  9 ++-
 drivers/gpu/drm/nouveau/nouveau_connector.c        | 25 +++---
 drivers/gpu/drm/nouveau/nouveau_connector.h        |  3 +-
 drivers/gpu/drm/qxl/qxl_display.c                  |  2 +-
 .../gpu/drm/renesas/rcar-du/rcar_du_writeback.c    | 15 ++--
 drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c  |  2 +-
 drivers/gpu/drm/sitronix/st7571.c                  |  2 +-
 drivers/gpu/drm/sitronix/st7920.c                  |  2 +-
 drivers/gpu/drm/solomon/ssd130x.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/stm/lvds.c                         |  2 +-
 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c             | 17 +++-
 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/sysfb/drm_sysfb_helper.h           |  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 | 17 +++-
 drivers/gpu/drm/tests/drm_probe_helper_test.c      |  2 +-
 drivers/gpu/drm/tiny/appletbdrm.c                  |  2 +-
 drivers/gpu/drm/tiny/arcpgu.c                      |  2 +-
 drivers/gpu/drm/tiny/bochs.c                       |  2 +-
 drivers/gpu/drm/tiny/cirrus-qemu.c                 |  2 +-
 drivers/gpu/drm/tiny/gm12u320.c                    |  2 +-
 drivers/gpu/drm/tiny/pixpaper.c                    |  2 +-
 drivers/gpu/drm/tiny/repaper.c                     |  2 +-
 drivers/gpu/drm/tiny/sharp-memory.c                |  2 +-
 drivers/gpu/drm/udl/udl_modeset.c                  |  2 +-
 drivers/gpu/drm/vboxvideo/vbox_mode.c              |  2 +-
 drivers/gpu/drm/vc4/tests/vc4_mock_output.c        |  2 +-
 drivers/gpu/drm/vc4/vc4_hdmi.c                     | 32 ++++++--
 drivers/gpu/drm/vc4/vc4_txp.c                      |  2 +-
 drivers/gpu/drm/vc4/vc4_vec.c                      | 16 +++-
 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/vmwgfx/vmwgfx_kms.c                | 23 ++----
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.h                |  3 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c                |  2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c               |  2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c               |  2 +-
 drivers/gpu/drm/xen/xen_drm_front_conn.c           |  2 +-
 include/drm/drm_atomic_state_helper.h              |  9 +--
 include/drm/drm_connector.h                        | 12 ---
 include/drm/drm_mipi_dbi.h                         |  2 +-
 108 files changed, 392 insertions(+), 331 deletions(-)
---
base-commit: 91f52e99824b0beebb48cad51bbda81437af8664
change-id: 20260709-drm-no-more-connector-reset-45ee14d7c62c

Best regards,
-- 
Maxime Ripard <mripard@kernel.org>


^ permalink raw reply	[flat|nested] 98+ messages in thread

* [PATCH 01/75] drm/panel: Add atomic_create_state support
  2026-10-14 17:26 ` Maxime Ripard
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  2026-10-14 17:45   ` sashiko-bot
  -1 siblings, 1 reply; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard

The panel bridge attach hook calls the connector's reset function to
initialize the connector state when the device is already registered.

Now that connectors are being migrated from the reset hook to
atomic_create_state, prefer it over reset and fall back to the reset
hook if atomic_create_state is not implemented.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
 drivers/gpu/drm/drm_panel.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
index c00529bfb706..c9f49e18890a 100644
--- a/drivers/gpu/drm/drm_panel.c
+++ b/drivers/gpu/drm/drm_panel.c
@@ -102,12 +102,22 @@ static int panel_bridge_attach(struct drm_bridge *bridge,
 	drm_panel_bridge_set_orientation(connector, bridge);
 
 	drm_connector_attach_encoder(connector, encoder);
 
 	if (bridge->dev->registered) {
-		if (connector->funcs->reset)
+		if (connector->funcs->atomic_create_state) {
+			struct drm_connector_state *conn_state;
+
+			conn_state = connector->funcs->atomic_create_state(connector);
+			if (IS_ERR(conn_state))
+				return PTR_ERR(conn_state);
+
+			connector->state = conn_state;
+		} else if (connector->funcs->reset) {
 			connector->funcs->reset(connector);
+		}
+
 		drm_connector_register(connector);
 	}
 
 	return 0;
 }

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 02/75] drm/adp: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
  (?)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Aun-Ali Zaidi, Aditya Garg

The adp connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Aditya Garg <gargaditya08@proton.me>
Cc: Aun-Ali Zaidi <admin@kodeit.net>
---
 drivers/gpu/drm/tiny/appletbdrm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/tiny/appletbdrm.c b/drivers/gpu/drm/tiny/appletbdrm.c
index 4297d9c1125e..4e17d7eb686f 100644
--- a/drivers/gpu/drm/tiny/appletbdrm.c
+++ b/drivers/gpu/drm/tiny/appletbdrm.c
@@ -587,11 +587,11 @@ static const struct drm_mode_config_funcs appletbdrm_mode_config_funcs = {
 	.atomic_check = drm_atomic_helper_check,
 	.atomic_commit = drm_atomic_helper_commit,
 };
 
 static const struct drm_connector_funcs appletbdrm_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.destroy = drm_connector_cleanup,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 };

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 03/75] drm/amdgpu: vkms: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (2 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Christian König, Alex Deucher,
	amd-gfx

The amdgpu: vkms connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: "Christian König" <christian.koenig@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: amd-gfx@lists.freedesktop.org
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c
index 5c5fdbec93c2..5c7e2172a372 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c
@@ -84,11 +84,11 @@ static int amdgpu_vkms_crtc_init(struct drm_device *dev, struct drm_crtc *crtc,
 }
 
 static const struct drm_connector_funcs amdgpu_vkms_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static int amdgpu_vkms_conn_get_modes(struct drm_connector *connector)

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 04/75] drm/amdgpu: dm: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (3 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  2026-10-14 17:52   ` sashiko-bot
  -1 siblings, 1 reply; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Christian König, Alex Deucher,
	Harry Wentland, Leo Li, Rodrigo Siqueira, amd-gfx

The amdgpu: dm connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: "Christian König" <christian.koenig@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Cc: Leo Li <sunpeng.li@amd.com>
Cc: Rodrigo Siqueira <siqueira@igalia.com>
Cc: amd-gfx@lists.freedesktop.org
---
 drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_audio_test.c | 2 +-
 .../gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_backlight_test.c | 2 +-
 drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_crc_test.c   | 7 ++++---
 .../gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_helpers_test.c   | 2 +-
 drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_irq_test.c   | 2 +-
 .../gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_mst_types_test.c | 4 ++--
 drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_wb_test.c    | 2 +-
 7 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_audio_test.c b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_audio_test.c
index 040a7a9c0335..9d83b7b1ca80 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_audio_test.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_audio_test.c
@@ -25,11 +25,11 @@
 #include "amdgpu_dm.h"
 #include "amdgpu_dm_audio.h"
 #include "amdgpu_dm_kunit_test_helpers.h"
 
 static const struct drm_connector_funcs dm_test_audio_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 };
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_backlight_test.c b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_backlight_test.c
index 5221050dec2f..6e9ee3c93943 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_backlight_test.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_backlight_test.c
@@ -30,11 +30,11 @@ struct dm_backlight_connector_fixture {
 	struct amdgpu_dm_connector *aconnector;
 	struct dc_link *link;
 };
 
 static const struct drm_connector_funcs dm_backlight_test_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static void setup_test_connector(struct kunit *test,
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_crc_test.c b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_crc_test.c
index 29a513dab9cd..e47b4dd210b8 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_crc_test.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_crc_test.c
@@ -173,11 +173,11 @@ static struct amdgpu_crtc *dm_test_alloc_crc_crtc(struct kunit *test,
 
 	return acrtc;
 }
 
 static const struct drm_connector_funcs dm_test_crc_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 };
@@ -652,12 +652,13 @@ static void dm_test_crtc_set_crc_source_dprx_no_connector(struct kunit *test)
 	KUNIT_ASSERT_EQ(test, drm_connector_init(&adev->ddev, wb_conn,
 						 &dm_test_crc_connector_funcs,
 						 DRM_MODE_CONNECTOR_WRITEBACK), 0);
 	KUNIT_ASSERT_EQ(test, kunit_add_action_or_reset(test,
 			dm_test_crc_connector_cleanup, wb_conn), 0);
-	drm_atomic_helper_connector_reset(wb_conn);
-	KUNIT_ASSERT_NOT_NULL(test, wb_conn->state);
+
+	wb_conn->state = drm_atomic_helper_connector_create_state(wb_conn);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, wb_conn->state);
 	wb_conn->state->crtc = &acrtc->base;
 	/*
 	 * __drm_atomic_helper_connector_destroy_state() drops a connector
 	 * reference when state->crtc is set. Balance it here since the CRTC is
 	 * assigned directly rather than via drm_atomic_set_crtc_for_connector(),
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_helpers_test.c b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_helpers_test.c
index 51c3995de76d..a369a3cbd4af 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_helpers_test.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_helpers_test.c
@@ -4104,11 +4104,11 @@ static void dm_test_is_dp_sink_present_queries_link_service(struct kunit *test)
  * drm_edid_connector_update(), which needs a fully initialised connector so the
  * EDID property blob is published. dm_kunit_alloc_connector() only fills in the
  * device pointer, so build a real one here.
  */
 static const struct drm_connector_funcs dm_test_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 };
 
 static struct amdgpu_dm_connector *dm_test_alloc_real_connector(struct kunit *test,
 								struct amdgpu_device *adev)
 {
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_irq_test.c b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_irq_test.c
index dc7d94f75ff4..3265b50abb46 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_irq_test.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_irq_test.c
@@ -479,11 +479,11 @@ static void dm_test_destroy_hpd_rx_wq(void *data)
 			destroy_workqueue(ctx->wq[i].wq);
 	kfree(ctx->wq);
 }
 
 static const struct drm_connector_funcs dm_test_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 };
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_mst_types_test.c b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_mst_types_test.c
index 382eafab2d43..10a213c36af4 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_mst_types_test.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_mst_types_test.c
@@ -1160,11 +1160,11 @@ static bool dm_mst_test_dp_get_max_link_enc_cap(const struct dc_link *link,
 static void dm_mst_test_connector_destroy(struct drm_connector *connector)
 {
 }
 
 static const struct drm_connector_funcs dm_mst_test_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.destroy = dm_mst_test_connector_destroy,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
@@ -3698,11 +3698,11 @@ static void dm_mst_test_pre_compute_configs_no_recompute(struct kunit *test)
 }
 
 /* Tests for compute_mst_dsc_configs_for_link */
 
 static const struct drm_connector_funcs dm_mst_test_dsc_link_conn_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static enum dp_link_encoding dm_mst_test_mst_encoding_format(const struct dc_link *link)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_wb_test.c b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_wb_test.c
index 03036f906385..e1e7d4c29966 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_wb_test.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_wb_test.c
@@ -385,11 +385,11 @@ static void dm_test_wb_atomic_check_invalid_format(struct kunit *test)
 /* Tests for amdgpu_dm_wb_connector_get_modes using DRM mock */
 
 static const struct drm_connector_funcs dm_wb_test_connector_funcs = {
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 };
 
 /**
  * dm_test_wb_get_modes_returns_modes - Verify at least one mode is returned
  * @test: KUnit test context

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 05/75] drm/arm: komeda: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (4 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Liviu Dudau

The arm: komeda connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Liviu Dudau <liviu.dudau@arm.com>
---
 drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c b/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c
index 4872253a2449..f394971c0edb 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c
@@ -126,11 +126,11 @@ static void komeda_wb_connector_destroy(struct drm_connector *connector)
 	drm_connector_cleanup(connector);
 	kfree(to_kconn(to_wb_conn(connector)));
 }
 
 static const struct drm_connector_funcs komeda_wb_connector_funcs = {
-	.reset			= drm_atomic_helper_connector_reset,
+	.atomic_create_state	= drm_atomic_helper_connector_create_state,
 	.detect			= komeda_wb_connector_detect,
 	.fill_modes		= komeda_wb_connector_fill_modes,
 	.destroy		= komeda_wb_connector_destroy,
 	.atomic_duplicate_state	= drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state	= drm_atomic_helper_connector_destroy_state,

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 06/75] drm/aspeed: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (5 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Andrew Jeffery, Joel Stanley

The aspeed connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Andrew Jeffery <andrew@codeconstruct.com.au>
Cc: Joel Stanley <joel@jms.id.au>
---
 drivers/gpu/drm/aspeed/aspeed_gfx_out.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/aspeed/aspeed_gfx_out.c b/drivers/gpu/drm/aspeed/aspeed_gfx_out.c
index 78775e0c853f..83bf5561bf81 100644
--- a/drivers/gpu/drm/aspeed/aspeed_gfx_out.c
+++ b/drivers/gpu/drm/aspeed/aspeed_gfx_out.c
@@ -19,11 +19,11 @@ drm_connector_helper_funcs aspeed_gfx_connector_helper_funcs = {
 };
 
 static const struct drm_connector_funcs aspeed_gfx_connector_funcs = {
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= drm_connector_cleanup,
-	.reset			= drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state	= drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state	= drm_atomic_helper_connector_destroy_state,
 };
 
 int aspeed_gfx_create_output(struct drm_device *drm)

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 07/75] drm/ast: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (6 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Dave Airlie, Jocelyn Falempe

The ast connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Dave Airlie <airlied@redhat.com>
Cc: Jocelyn Falempe <jfalempe@redhat.com>
---
 drivers/gpu/drm/ast/ast_dp501.c  | 2 +-
 drivers/gpu/drm/ast/ast_sil164.c | 2 +-
 drivers/gpu/drm/ast/ast_vga.c    | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/ast/ast_dp501.c b/drivers/gpu/drm/ast/ast_dp501.c
index 6d6ccfad1415..9380c3d54e97 100644
--- a/drivers/gpu/drm/ast/ast_dp501.c
+++ b/drivers/gpu/drm/ast/ast_dp501.c
@@ -544,11 +544,11 @@ static const struct drm_connector_helper_funcs ast_dp501_connector_helper_funcs
 	.get_modes = ast_dp501_connector_helper_get_modes,
 	.detect_ctx = ast_dp501_connector_helper_detect_ctx,
 };
 
 static const struct drm_connector_funcs ast_dp501_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
diff --git a/drivers/gpu/drm/ast/ast_sil164.c b/drivers/gpu/drm/ast/ast_sil164.c
index be01254dd48a..b84d9b254d88 100644
--- a/drivers/gpu/drm/ast/ast_sil164.c
+++ b/drivers/gpu/drm/ast/ast_sil164.c
@@ -64,11 +64,11 @@ static const struct drm_connector_helper_funcs ast_sil164_connector_helper_funcs
 	.get_modes = ast_sil164_connector_helper_get_modes,
 	.detect_ctx = ast_sil164_connector_helper_detect_ctx,
 };
 
 static const struct drm_connector_funcs ast_sil164_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
diff --git a/drivers/gpu/drm/ast/ast_vga.c b/drivers/gpu/drm/ast/ast_vga.c
index abe0fff8485c..56a4524f5a8a 100644
--- a/drivers/gpu/drm/ast/ast_vga.c
+++ b/drivers/gpu/drm/ast/ast_vga.c
@@ -64,11 +64,11 @@ static const struct drm_connector_helper_funcs ast_vga_connector_helper_funcs =
 	.get_modes = ast_vga_connector_helper_get_modes,
 	.detect_ctx = ast_vga_connector_helper_detect_ctx,
 };
 
 static const struct drm_connector_funcs ast_vga_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 08/75] drm/bridge: analogix-anx6345: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (7 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard

The bridge: analogix-anx6345 connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
 drivers/gpu/drm/bridge/analogix/analogix-anx6345.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
index 407834a03b63..0cff9ff0265a 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
@@ -481,11 +481,11 @@ anx6345_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs anx6345_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = anx6345_connector_destroy,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static int anx6345_bridge_attach(struct drm_bridge *bridge,

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 09/75] drm/bridge: analogix-anx78xx: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (8 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard

The bridge: analogix-anx78xx connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
 drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c b/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
index 32186efa6f50..94f07a2317e1 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
@@ -852,11 +852,11 @@ static enum drm_connector_status anx78xx_detect(struct drm_connector *connector,
 
 static const struct drm_connector_funcs anx78xx_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = anx78xx_detect,
 	.destroy = drm_connector_cleanup,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static int anx78xx_bridge_attach(struct drm_bridge *bridge,

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 10/75] drm/bridge: chrontel-ch7033: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (9 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard

The bridge: chrontel-ch7033 connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
 drivers/gpu/drm/bridge/chrontel-ch7033.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/chrontel-ch7033.c b/drivers/gpu/drm/bridge/chrontel-ch7033.c
index 4bc64b2885f7..a0ce41aa2f4d 100644
--- a/drivers/gpu/drm/bridge/chrontel-ch7033.c
+++ b/drivers/gpu/drm/bridge/chrontel-ch7033.c
@@ -216,11 +216,11 @@ static enum drm_connector_status ch7033_connector_detect(
 
 	return drm_bridge_detect(priv->bridge.next_bridge, connector);
 }
 
 static const struct drm_connector_funcs ch7033_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = ch7033_connector_detect,
 	.destroy = drm_connector_cleanup,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 11/75] drm/bridge: lontium-lt8912b: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (10 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Francesco Dolcini

The bridge: lontium-lt8912b connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Francesco Dolcini <francesco@dolcini.it>
---
 drivers/gpu/drm/bridge/lontium-lt8912b.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/lontium-lt8912b.c b/drivers/gpu/drm/bridge/lontium-lt8912b.c
index e347d04b7b2d..a4d05dcba9e0 100644
--- a/drivers/gpu/drm/bridge/lontium-lt8912b.c
+++ b/drivers/gpu/drm/bridge/lontium-lt8912b.c
@@ -414,11 +414,11 @@ lt8912_connector_detect(struct drm_connector *connector, bool force)
 
 static const struct drm_connector_funcs lt8912_connector_funcs = {
 	.detect = lt8912_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static int lt8912_connector_get_modes(struct drm_connector *connector)

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 12/75] drm/bridge: megachips: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (11 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Ian Ray, Martyn Welch,
	Peter Senna Tschudin

The bridge: megachips connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Ian Ray <ian.ray@gehealthcare.com>
Cc: Martyn Welch <martyn.welch@collabora.co.uk>
Cc: Peter Senna Tschudin <peter.senna@gmail.com>
---
 drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
index 4d244e6d4ed9..9153bf629fd1 100644
--- a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
+++ b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
@@ -147,11 +147,11 @@ static enum drm_connector_status ge_b850v3_lvds_detect(struct drm_connector *con
 
 static const struct drm_connector_funcs ge_b850v3_lvds_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = ge_b850v3_lvds_detect,
 	.destroy = drm_connector_cleanup,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static int ge_b850v3_lvds_create_connector(struct drm_bridge *bridge)

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 13/75] drm/bridge: nxp-ptn3460: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (12 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard

The bridge: nxp-ptn3460 connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
 drivers/gpu/drm/bridge/nxp-ptn3460.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c
index f9eff8bfceb7..be6a06130ba9 100644
--- a/drivers/gpu/drm/bridge/nxp-ptn3460.c
+++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c
@@ -208,11 +208,11 @@ static const struct drm_connector_helper_funcs ptn3460_connector_helper_funcs =
 };
 
 static const struct drm_connector_funcs ptn3460_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static int ptn3460_bridge_attach(struct drm_bridge *bridge,

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 14/75] drm/panel: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (13 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  2026-10-14 17:48   ` sashiko-bot
  -1 siblings, 1 reply; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard

The bridge: panel connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
 drivers/gpu/drm/drm_panel.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
index c9f49e18890a..55a1427c7a10 100644
--- a/drivers/gpu/drm/drm_panel.c
+++ b/drivers/gpu/drm/drm_panel.c
@@ -68,13 +68,13 @@ static const struct drm_connector_helper_funcs
 panel_bridge_connector_helper_funcs = {
 	.get_modes = panel_bridge_connector_get_modes,
 };
 
 static const struct drm_connector_funcs panel_bridge_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static int panel_bridge_attach(struct drm_bridge *bridge,

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 15/75] drm/bridge: sii902x: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (14 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  2026-10-14 18:26   ` Dmitry Baryshkov
  -1 siblings, 1 reply; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard

The bridge: sii902x connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
 drivers/gpu/drm/bridge/sii902x.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/sii902x.c b/drivers/gpu/drm/bridge/sii902x.c
index 9aac44ed5b67..e067c0636e7f 100644
--- a/drivers/gpu/drm/bridge/sii902x.c
+++ b/drivers/gpu/drm/bridge/sii902x.c
@@ -279,11 +279,11 @@ sii902x_connector_detect(struct drm_connector *connector, bool force)
 
 static const struct drm_connector_funcs sii902x_connector_funcs = {
 	.detect = sii902x_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static const struct drm_edid *sii902x_edid_read(struct sii902x *sii902x,

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 16/75] drm/bridge: simple-bridge: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (15 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  2026-10-14 18:27   ` Dmitry Baryshkov
  -1 siblings, 1 reply; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard

The bridge: simple-bridge connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
 drivers/gpu/drm/bridge/simple-bridge.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/simple-bridge.c b/drivers/gpu/drm/bridge/simple-bridge.c
index fab793fb12b5..a1a1d8c4c035 100644
--- a/drivers/gpu/drm/bridge/simple-bridge.c
+++ b/drivers/gpu/drm/bridge/simple-bridge.c
@@ -94,11 +94,11 @@ simple_bridge_connector_detect(struct drm_connector *connector, bool force)
 
 static const struct drm_connector_funcs simple_bridge_con_funcs = {
 	.detect			= simple_bridge_connector_detect,
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= drm_connector_cleanup,
-	.reset			= drm_atomic_helper_connector_reset,
+	.atomic_create_state	= drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state	= drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state	= drm_atomic_helper_connector_destroy_state,
 };
 
 static int simple_bridge_attach(struct drm_bridge *bridge,

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 17/75] drm/bridge: synopsys: dw-hdmi: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (16 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard

The bridge: synopsys: dw-hdmi connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index 937d61c42b58..917cf764c9c5 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -2567,11 +2567,11 @@ static void dw_hdmi_connector_force(struct drm_connector *connector)
 static const struct drm_connector_funcs dw_hdmi_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = dw_hdmi_connector_detect,
 	.destroy = drm_connector_cleanup,
 	.force = dw_hdmi_connector_force,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static const struct drm_connector_helper_funcs dw_hdmi_connector_helper_funcs = {

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 18/75] drm/bridge: tc358767: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (17 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard

The bridge: tc358767 connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
 drivers/gpu/drm/bridge/tc358767.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c
index 51f4baa62a53..5ea6d3726bee 100644
--- a/drivers/gpu/drm/bridge/tc358767.c
+++ b/drivers/gpu/drm/bridge/tc358767.c
@@ -1794,11 +1794,11 @@ tc_connector_detect(struct drm_connector *connector, bool force)
 
 static const struct drm_connector_funcs tc_connector_funcs = {
 	.detect = tc_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static int tc_dpi_bridge_attach(struct drm_bridge *bridge,

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 19/75] drm/bridge: tda998x: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (18 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Russell King

The bridge: tda998x connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Russell King <linux@armlinux.org.uk>
---
 drivers/gpu/drm/bridge/tda998x_drv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/tda998x_drv.c b/drivers/gpu/drm/bridge/tda998x_drv.c
index 0b966c9844e7..b9185bd3d8e1 100644
--- a/drivers/gpu/drm/bridge/tda998x_drv.c
+++ b/drivers/gpu/drm/bridge/tda998x_drv.c
@@ -1208,11 +1208,11 @@ tda998x_connector_detect(struct drm_connector *connector, bool force)
 
 	return tda998x_conn_detect(priv);
 }
 
 static const struct drm_connector_funcs tda998x_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = tda998x_connector_detect,
 	.destroy = drm_connector_cleanup,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 20/75] drm/bridge: ti-tfp410: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (19 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard

The bridge: ti-tfp410 connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
 drivers/gpu/drm/bridge/ti-tfp410.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti-tfp410.c
index 629ff7095e87..64a3d64e1f7b 100644
--- a/drivers/gpu/drm/bridge/ti-tfp410.c
+++ b/drivers/gpu/drm/bridge/ti-tfp410.c
@@ -93,11 +93,11 @@ tfp410_connector_detect(struct drm_connector *connector, bool force)
 
 static const struct drm_connector_funcs tfp410_con_funcs = {
 	.detect			= tfp410_connector_detect,
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= drm_connector_cleanup,
-	.reset			= drm_atomic_helper_connector_reset,
+	.atomic_create_state	= drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state	= drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state	= drm_atomic_helper_connector_destroy_state,
 };
 
 static void tfp410_hpd_work_func(struct work_struct *work)

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 21/75] drm/exynos: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (20 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Alim Akhtar, Inki Dae,
	Krzysztof Kozlowski, Kyungmin Park, Peter Griffin, Seung-Woo Kim,
	linux-samsung-soc

The exynos connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: linux-samsung-soc@vger.kernel.org
---
 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 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
index 74d3a2bebb74..42c48fd14050 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
@@ -54,11 +54,11 @@ static void exynos_dpi_connector_destroy(struct drm_connector *connector)
 
 static const struct drm_connector_funcs exynos_dpi_connector_funcs = {
 	.detect = exynos_dpi_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = exynos_dpi_connector_destroy,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static int exynos_dpi_get_modes(struct drm_connector *connector)
diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
index 077571eae9d6..f3e8a2bc1182 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
@@ -332,11 +332,11 @@ static void vidi_connector_destroy(struct drm_connector *connector)
 
 static const struct drm_connector_funcs vidi_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = vidi_detect,
 	.destroy = vidi_connector_destroy,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static int vidi_get_modes(struct drm_connector *connector)
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c
index 055dc04f9b3e..654a8b1b4afc 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -873,11 +873,11 @@ static void hdmi_connector_destroy(struct drm_connector *connector)
 
 static const struct drm_connector_funcs hdmi_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = hdmi_detect,
 	.destroy = hdmi_connector_destroy,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static int hdmi_get_modes(struct drm_connector *connector)

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 22/75] drm/fsl-dcu: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (21 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Alison Wang, Stefan Agner

The fsl-dcu connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Alison Wang <alison.wang@nxp.com>
Cc: Stefan Agner <stefan@agner.ch>
---
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
index c64264541fe2..258bc556dde0 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
@@ -52,11 +52,11 @@ static void fsl_dcu_drm_connector_destroy(struct drm_connector *connector)
 static const struct drm_connector_funcs fsl_dcu_drm_connector_funcs = {
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.destroy = fsl_dcu_drm_connector_destroy,
 	.fill_modes = drm_helper_probe_single_connector_modes,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 };
 
 static int fsl_dcu_drm_connector_get_modes(struct drm_connector *connector)
 {
 	struct fsl_dcu_drm_connector *fsl_connector;

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 23/75] drm/hisilicon: hibmc: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (22 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Tian Tao, Xinwei Kong, Yongbang Shi

The hisilicon: hibmc connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Tian Tao <tiantao6@hisilicon.com>
Cc: Xinwei Kong <kong.kongxinwei@hisilicon.com>
Cc: Yongbang Shi <shiyongbang@huawei.com>
---
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_dp.c   | 2 +-
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_dp.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_dp.c
index 2e9403b8bf3c..06624ea1fb4c 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_dp.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_dp.c
@@ -135,11 +135,11 @@ static void hibmc_dp_early_unregister(struct drm_connector *connector)
 
 	hibmc_dp_disable_int(dp);
 }
 
 static const struct drm_connector_funcs hibmc_dp_conn_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.late_register = hibmc_dp_late_register,
diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
index b9bd6d33fb0f..fac0ce32c190 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
@@ -81,11 +81,11 @@ static const struct drm_connector_helper_funcs
 };
 
 static const struct drm_connector_funcs hibmc_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = hibmc_connector_destroy,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 int hibmc_vdac_init(struct hibmc_drm_private *priv)

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 24/75] drm/hyperv: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (23 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Dexuan Cui, Long Li, Saurabh Sengar,
	linux-hyperv

The hyperv connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Dexuan Cui <decui@microsoft.com>
Cc: Long Li <longli@microsoft.com>
Cc: Saurabh Sengar <ssengar@linux.microsoft.com>
Cc: linux-hyperv@vger.kernel.org
---
 drivers/gpu/drm/hyperv/hyperv_drm_modeset.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/hyperv/hyperv_drm_modeset.c b/drivers/gpu/drm/hyperv/hyperv_drm_modeset.c
index 523d1c7ea072..da399cb951a5 100644
--- a/drivers/gpu/drm/hyperv/hyperv_drm_modeset.c
+++ b/drivers/gpu/drm/hyperv/hyperv_drm_modeset.c
@@ -64,11 +64,11 @@ static const struct drm_connector_helper_funcs hv_drm_connector_helper_funcs = {
 };
 
 static const struct drm_connector_funcs hv_drm_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static inline int hv_drm_conn_init(struct hv_drm_device *hv)

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 25/75] drm/imx: ipuv3: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (24 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  2026-10-14 18:38   ` Frank Li
  -1 siblings, 1 reply; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Fabio Estevam, Frank Li,
	Pengutronix Kernel Team, Philipp Zabel, Sascha Hauer, imx

The imx: ipuv3 connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Frank Li <Frank.Li@nxp.com>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: imx@lists.linux.dev
---
 drivers/gpu/drm/imx/ipuv3/imx-tve.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/imx/ipuv3/imx-tve.c b/drivers/gpu/drm/imx/ipuv3/imx-tve.c
index e861b8b9d8fa..4ece79374372 100644
--- a/drivers/gpu/drm/imx/ipuv3/imx-tve.c
+++ b/drivers/gpu/drm/imx/ipuv3/imx-tve.c
@@ -312,11 +312,11 @@ static void imx_tve_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs imx_tve_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = imx_tve_connector_destroy,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static const struct drm_connector_helper_funcs imx_tve_connector_helper_funcs = {

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 26/75] drm/logicvc: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (25 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Paul Kocialkowski

The logicvc connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Paul Kocialkowski <paulk@sys-base.io>
---
 drivers/gpu/drm/logicvc/logicvc_interface.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/logicvc/logicvc_interface.c b/drivers/gpu/drm/logicvc/logicvc_interface.c
index 81f760dc07f8..a2ea22bb4643 100644
--- a/drivers/gpu/drm/logicvc/logicvc_interface.c
+++ b/drivers/gpu/drm/logicvc/logicvc_interface.c
@@ -85,11 +85,11 @@ static int logicvc_connector_get_modes(struct drm_connector *drm_connector)
 static const struct drm_connector_helper_funcs logicvc_connector_helper_funcs = {
 	.get_modes		= logicvc_connector_get_modes,
 };
 
 static const struct drm_connector_funcs logicvc_connector_funcs = {
-	.reset			= drm_atomic_helper_connector_reset,
+	.atomic_create_state	= drm_atomic_helper_connector_create_state,
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= drm_connector_cleanup,
 	.atomic_duplicate_state	= drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state	= drm_atomic_helper_connector_destroy_state,
 };

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 27/75] drm/loongson: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (26 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Huacai Chen, Icenowy Zheng, Jianmin Lv,
	Mingcong Bai, Qianhai Wu, Xi Ruoyao

The loongson connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: Icenowy Zheng <zhengxingda@iscas.ac.cn>
Cc: Jianmin Lv <lvjianmin@loongson.cn>
Cc: Mingcong Bai <jeffbai@aosc.io>
Cc: Qianhai Wu <wuqianhai@loongson.cn>
Cc: Xi Ruoyao <xry111@xry111.site>
---
 drivers/gpu/drm/loongson/lsdc_output_7a1000.c | 2 +-
 drivers/gpu/drm/loongson/lsdc_output_7a2000.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/loongson/lsdc_output_7a1000.c b/drivers/gpu/drm/loongson/lsdc_output_7a1000.c
index 5c483baa3762..3d4562353578 100644
--- a/drivers/gpu/drm/loongson/lsdc_output_7a1000.c
+++ b/drivers/gpu/drm/loongson/lsdc_output_7a1000.c
@@ -93,11 +93,11 @@ ls7a1000_dpi_connector_detect(struct drm_connector *connector, bool force)
 
 static const struct drm_connector_funcs ls7a1000_dpi_connector_funcs = {
 	.detect = ls7a1000_dpi_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state
 };
 
 static void ls7a1000_pipe0_encoder_reset(struct drm_encoder *encoder)
diff --git a/drivers/gpu/drm/loongson/lsdc_output_7a2000.c b/drivers/gpu/drm/loongson/lsdc_output_7a2000.c
index a9798b3dadee..e2255e6a0d32 100644
--- a/drivers/gpu/drm/loongson/lsdc_output_7a2000.c
+++ b/drivers/gpu/drm/loongson/lsdc_output_7a2000.c
@@ -201,20 +201,20 @@ ls7a2000_hdmi1_connector_detect(struct drm_connector *connector, bool force)
 static const struct drm_connector_funcs ls7a2000_hdmi_connector_funcs[2] = {
 	{
 		.detect = ls7a2000_hdmi0_vga_connector_detect,
 		.fill_modes = drm_helper_probe_single_connector_modes,
 		.destroy = drm_connector_cleanup,
-		.reset = drm_atomic_helper_connector_reset,
+		.atomic_create_state = drm_atomic_helper_connector_create_state,
 		.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 		.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 		.debugfs_init = ls7a2000_hdmi0_late_register,
 	},
 	{
 		.detect = ls7a2000_hdmi1_connector_detect,
 		.fill_modes = drm_helper_probe_single_connector_modes,
 		.destroy = drm_connector_cleanup,
-		.reset = drm_atomic_helper_connector_reset,
+		.atomic_create_state = drm_atomic_helper_connector_create_state,
 		.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 		.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 		.debugfs_init = ls7a2000_hdmi1_late_register,
 	},
 };

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 28/75] drm/mgag200: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (27 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Dave Airlie, Jocelyn Falempe

The mgag200 connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Dave Airlie <airlied@redhat.com>
Cc: Jocelyn Falempe <jfalempe@redhat.com>
---
 drivers/gpu/drm/mgag200/mgag200_vga.c     | 2 +-
 drivers/gpu/drm/mgag200/mgag200_vga_bmc.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/mgag200/mgag200_vga.c b/drivers/gpu/drm/mgag200/mgag200_vga.c
index b07c1362ddd4..a949c6543c2e 100644
--- a/drivers/gpu/drm/mgag200/mgag200_vga.c
+++ b/drivers/gpu/drm/mgag200/mgag200_vga.c
@@ -16,11 +16,11 @@ static const struct drm_connector_helper_funcs mgag200_vga_connector_helper_func
 	.get_modes = drm_connector_helper_get_modes,
 	.detect_ctx = drm_connector_helper_detect_from_ddc
 };
 
 static const struct drm_connector_funcs mgag200_vga_connector_funcs = {
-	.reset                  = drm_atomic_helper_connector_reset,
+	.atomic_create_state	= drm_atomic_helper_connector_create_state,
 	.fill_modes             = drm_helper_probe_single_connector_modes,
 	.destroy                = drm_connector_cleanup,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state   = drm_atomic_helper_connector_destroy_state
 };
diff --git a/drivers/gpu/drm/mgag200/mgag200_vga_bmc.c b/drivers/gpu/drm/mgag200/mgag200_vga_bmc.c
index 805636990b55..1c118dad6d81 100644
--- a/drivers/gpu/drm/mgag200/mgag200_vga_bmc.c
+++ b/drivers/gpu/drm/mgag200/mgag200_vga_bmc.c
@@ -98,11 +98,11 @@ static const struct drm_connector_helper_funcs mgag200_vga_connector_helper_func
 	.get_modes = mgag200_vga_bmc_connector_helper_get_modes,
 	.detect_ctx = mgag200_vga_bmc_connector_helper_detect_ctx,
 };
 
 static const struct drm_connector_funcs mgag200_vga_connector_funcs = {
-	.reset                  = drm_atomic_helper_connector_reset,
+	.atomic_create_state	= drm_atomic_helper_connector_create_state,
 	.fill_modes             = drm_helper_probe_single_connector_modes,
 	.destroy                = drm_connector_cleanup,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state   = drm_atomic_helper_connector_destroy_state
 };

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 29/75] drm/mipi-dbi: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (28 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard

The mipi-dbi connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
 include/drm/drm_mipi_dbi.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/drm/drm_mipi_dbi.h b/include/drm/drm_mipi_dbi.h
index d93e25fdc2e1..d130d0600c73 100644
--- a/include/drm/drm_mipi_dbi.h
+++ b/include/drm/drm_mipi_dbi.h
@@ -255,11 +255,11 @@ void drm_mipi_dbi_crtc_helper_atomic_disable(struct drm_crtc *crtc,
 /*
  * Connector
  */
 
 #define DRM_MIPI_DBI_CONNECTOR_FUNCS \
-	.reset = drm_atomic_helper_connector_reset, \
+	.atomic_create_state = drm_atomic_helper_connector_create_state, \
 	.fill_modes = drm_helper_probe_single_connector_modes, \
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, \
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state
 
 int drm_mipi_dbi_connector_helper_get_modes(struct drm_connector *connector);

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 30/75] drm/msm: dpu1: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (29 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  2026-10-14 18:25   ` Dmitry Baryshkov
  -1 siblings, 1 reply; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Abhinav Kumar, Dmitry Baryshkov,
	Jessica Zhang, Marijn Suijten, Rob Clark, Sean Paul, freedreno,
	linux-arm-msm

The msm: dpu1 connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Abhinav Kumar <abhinav.kumar@linux.dev>
Cc: Dmitry Baryshkov <lumag@kernel.org>
Cc: Jessica Zhang <jesszhan0024@gmail.com>
Cc: Marijn Suijten <marijn.suijten@somainline.org>
Cc: Rob Clark <robin.clark@oss.qualcomm.com>
Cc: Sean Paul <sean@poorly.run>
Cc: freedreno@lists.freedesktop.org
Cc: linux-arm-msm@vger.kernel.org
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c
index e7b09013ae4c..83ff7122a187 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c
@@ -80,11 +80,11 @@ static int dpu_wb_conn_atomic_check(struct drm_connector *connector,
 
 	return drm_atomic_helper_check_wb_connector_state(conn_state->connector, conn_state->state);
 }
 
 static const struct drm_connector_funcs dpu_wb_conn_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 31/75] drm/qxl: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (30 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  2026-10-14 17:53   ` sashiko-bot
  -1 siblings, 1 reply; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Dave Airlie, Gerd Hoffmann, spice-devel,
	virtualization

The qxl connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Dave Airlie <airlied@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: spice-devel@lists.freedesktop.org
Cc: virtualization@lists.linux.dev
---
 drivers/gpu/drm/qxl/qxl_display.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c
index 63fc7c6a7f1a..204c47d61373 100644
--- a/drivers/gpu/drm/qxl/qxl_display.c
+++ b/drivers/gpu/drm/qxl/qxl_display.c
@@ -1139,11 +1139,11 @@ static void qxl_conn_destroy(struct drm_connector *connector)
 
 static const struct drm_connector_funcs qxl_connector_funcs = {
 	.detect = qxl_conn_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = qxl_conn_destroy,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static int qxl_mode_create_hotplug_mode_update_property(struct qxl_device *qdev)

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 32/75] drm/renesas: shmobile: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (31 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Geert Uytterhoeven, linux-renesas-soc

The renesas: shmobile connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: linux-renesas-soc@vger.kernel.org
---
 drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c
index 51bae2008cc6..ef51c4aafc84 100644
--- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c
+++ b/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c
@@ -525,11 +525,11 @@ static void shmob_drm_connector_destroy(struct drm_connector *connector)
 
 	kfree(connector);
 }
 
 static const struct drm_connector_funcs connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = shmob_drm_connector_destroy,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 33/75] drm/sitronix: st7571: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (32 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Marcus Folkesson

The sitronix: st7571 connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Marcus Folkesson <marcus.folkesson@gmail.com>
---
 drivers/gpu/drm/sitronix/st7571.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/sitronix/st7571.c b/drivers/gpu/drm/sitronix/st7571.c
index 5e60c4685671..021094cf8d3f 100644
--- a/drivers/gpu/drm/sitronix/st7571.c
+++ b/drivers/gpu/drm/sitronix/st7571.c
@@ -473,11 +473,11 @@ static const struct drm_encoder_helper_funcs st7571_encoder_helper_funcs = {
 /*
  * Connector
  */
 
 static const struct drm_connector_funcs st7571_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 34/75] drm/sitronix: st7920: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (33 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Iker Pedrosa

The sitronix: st7920 connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Iker Pedrosa <ikerpedrosam@gmail.com>
---
 drivers/gpu/drm/sitronix/st7920.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/sitronix/st7920.c b/drivers/gpu/drm/sitronix/st7920.c
index 9887ed746ceb..0b838ddd13fe 100644
--- a/drivers/gpu/drm/sitronix/st7920.c
+++ b/drivers/gpu/drm/sitronix/st7920.c
@@ -651,11 +651,11 @@ static int st7920_connector_get_modes(struct drm_connector *connector)
 static const struct drm_connector_helper_funcs st7920_connector_helper_funcs = {
 	.get_modes = st7920_connector_get_modes,
 };
 
 static const struct drm_connector_funcs st7920_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 35/75] drm/solomon: ssd130x: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (34 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  2026-10-14 20:21   ` Javier Martinez Canillas
  -1 siblings, 1 reply; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Javier Martinez Canillas

The solomon: ssd130x connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Javier Martinez Canillas <javierm@redhat.com>
---
 drivers/gpu/drm/solomon/ssd130x.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/solomon/ssd130x.c b/drivers/gpu/drm/solomon/ssd130x.c
index 8cbf18754487..ee43cf0da879 100644
--- a/drivers/gpu/drm/solomon/ssd130x.c
+++ b/drivers/gpu/drm/solomon/ssd130x.c
@@ -1983,11 +1983,11 @@ static int ssd130x_connector_get_modes(struct drm_connector *connector)
 static const struct drm_connector_helper_funcs ssd130x_connector_helper_funcs = {
 	.get_modes = ssd130x_connector_get_modes,
 };
 
 static const struct drm_connector_funcs ssd130x_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 36/75] drm/sti: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (35 preceding siblings ...)
  (?)
@ 2026-10-14 17:26 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:26 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Alain Volmat, Raphael Gallais-Pou

The sti connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Alain Volmat <alain.volmat@foss.st.com>
Cc: Raphael Gallais-Pou <rgallaispou@gmail.com>
---
 drivers/gpu/drm/sti/sti_dvo.c  | 2 +-
 drivers/gpu/drm/sti/sti_hda.c  | 2 +-
 drivers/gpu/drm/sti/sti_hdmi.c | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/sti/sti_dvo.c b/drivers/gpu/drm/sti/sti_dvo.c
index cdb19b75f5e1..18c337ffa161 100644
--- a/drivers/gpu/drm/sti/sti_dvo.c
+++ b/drivers/gpu/drm/sti/sti_dvo.c
@@ -418,11 +418,11 @@ static int sti_dvo_late_register(struct drm_connector *connector)
 
 static const struct drm_connector_funcs sti_dvo_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = sti_dvo_connector_detect,
 	.destroy = drm_connector_cleanup,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.late_register = sti_dvo_late_register,
 };
 
diff --git a/drivers/gpu/drm/sti/sti_hda.c b/drivers/gpu/drm/sti/sti_hda.c
index b4def2b25cec..204738807c86 100644
--- a/drivers/gpu/drm/sti/sti_hda.c
+++ b/drivers/gpu/drm/sti/sti_hda.c
@@ -661,11 +661,11 @@ static int sti_hda_late_register(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs sti_hda_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.late_register = sti_hda_late_register,
 };
 
diff --git a/drivers/gpu/drm/sti/sti_hdmi.c b/drivers/gpu/drm/sti/sti_hdmi.c
index 7ba9e0b7ba6c..9a810a89e6c0 100644
--- a/drivers/gpu/drm/sti/sti_hdmi.c
+++ b/drivers/gpu/drm/sti/sti_hdmi.c
@@ -1144,11 +1144,11 @@ static int sti_hdmi_late_register(struct drm_connector *connector)
 
 static const struct drm_connector_funcs sti_hdmi_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = sti_hdmi_connector_detect,
 	.destroy = drm_connector_cleanup,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_set_property = sti_hdmi_connector_set_property,
 	.atomic_get_property = sti_hdmi_connector_get_property,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.late_register = sti_hdmi_late_register,

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 37/75] drm/stm: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (36 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Alexandre Torgue, Maxime Coquelin,
	Philippe Cornu, Raphael Gallais-Pou, Yannick Fertre

The stm connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>
Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
Cc: Philippe Cornu <philippe.cornu@foss.st.com>
Cc: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
Cc: Yannick Fertre <yannick.fertre@foss.st.com>
---
 drivers/gpu/drm/stm/lvds.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/stm/lvds.c b/drivers/gpu/drm/stm/lvds.c
index 1072dbe7bd6a..e72a64f14f47 100644
--- a/drivers/gpu/drm/stm/lvds.c
+++ b/drivers/gpu/drm/stm/lvds.c
@@ -927,11 +927,11 @@ static const struct drm_connector_helper_funcs lvds_conn_helper_funcs = {
 	.get_modes = lvds_connector_get_modes,
 	.atomic_check = lvds_connector_atomic_check,
 };
 
 static const struct drm_connector_funcs lvds_conn_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 38/75] drm/sun4i: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (37 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Chen-Yu Tsai, Samuel Holland,
	linux-sunxi

The sun4i connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Chen-Yu Tsai <wens@kernel.org>
Cc: Samuel Holland <samuel@sholland.org>
Cc: linux-sunxi@lists.linux.dev
---
 drivers/gpu/drm/sun4i/sun4i_lvds.c     | 2 +-
 drivers/gpu/drm/sun4i/sun4i_rgb.c      | 2 +-
 drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/sun4i/sun4i_lvds.c b/drivers/gpu/drm/sun4i/sun4i_lvds.c
index 6b98d20a8890..f3f035c9260f 100644
--- a/drivers/gpu/drm/sun4i/sun4i_lvds.c
+++ b/drivers/gpu/drm/sun4i/sun4i_lvds.c
@@ -63,11 +63,11 @@ sun4i_lvds_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs sun4i_lvds_con_funcs = {
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= sun4i_lvds_connector_destroy,
-	.reset			= drm_atomic_helper_connector_reset,
+	.atomic_create_state	= drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state	= drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state	= drm_atomic_helper_connector_destroy_state,
 };
 
 static void sun4i_lvds_encoder_enable(struct drm_encoder *encoder)
diff --git a/drivers/gpu/drm/sun4i/sun4i_rgb.c b/drivers/gpu/drm/sun4i/sun4i_rgb.c
index 3da9a9283c6e..c930dd899875 100644
--- a/drivers/gpu/drm/sun4i/sun4i_rgb.c
+++ b/drivers/gpu/drm/sun4i/sun4i_rgb.c
@@ -154,11 +154,11 @@ sun4i_rgb_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs sun4i_rgb_con_funcs = {
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= sun4i_rgb_connector_destroy,
-	.reset			= drm_atomic_helper_connector_reset,
+	.atomic_create_state	= drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state	= drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state	= drm_atomic_helper_connector_destroy_state,
 };
 
 static void sun4i_rgb_encoder_enable(struct drm_encoder *encoder)
diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
index d504ae583294..1b7ae9b327c1 100644
--- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
+++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
@@ -835,11 +835,11 @@ sun6i_dsi_connector_detect(struct drm_connector *connector, bool force)
 
 static const struct drm_connector_funcs sun6i_dsi_connector_funcs = {
 	.detect			= sun6i_dsi_connector_detect,
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= drm_connector_cleanup,
-	.reset			= drm_atomic_helper_connector_reset,
+	.atomic_create_state	= drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state	= drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state	= drm_atomic_helper_connector_destroy_state,
 };
 
 static const struct drm_encoder_funcs sun6i_dsi_enc_funcs = {

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 39/75] drm/sysfb: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (38 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  2026-10-14 20:21   ` Javier Martinez Canillas
  -1 siblings, 1 reply; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Javier Martinez Canillas

The sysfb connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Javier Martinez Canillas <javierm@redhat.com>
---
 drivers/gpu/drm/sysfb/drm_sysfb_helper.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/sysfb/drm_sysfb_helper.h b/drivers/gpu/drm/sysfb/drm_sysfb_helper.h
index c043428e02fd..6dab27b41c08 100644
--- a/drivers/gpu/drm/sysfb/drm_sysfb_helper.h
+++ b/drivers/gpu/drm/sysfb/drm_sysfb_helper.h
@@ -192,11 +192,11 @@ int drm_sysfb_connector_helper_get_modes(struct drm_connector *connector);
 
 #define DRM_SYSFB_CONNECTOR_HELPER_FUNCS \
 	.get_modes = drm_sysfb_connector_helper_get_modes
 
 #define DRM_SYSFB_CONNECTOR_FUNCS \
-	.reset = drm_atomic_helper_connector_reset, \
+	.atomic_create_state = drm_atomic_helper_connector_create_state, \
 	.fill_modes = drm_helper_probe_single_connector_modes, \
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, \
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state
 
 /*

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 40/75] drm/tegra: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (39 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Jonathan Hunter, Mikko Perttunen,
	Thierry Reding, linux-tegra

The tegra connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Jonathan Hunter <jonathanh@nvidia.com>
Cc: Mikko Perttunen <mperttunen@nvidia.com>
Cc: Thierry Reding <thierry.reding@kernel.org>
Cc: linux-tegra@vger.kernel.org
---
 drivers/gpu/drm/tegra/hdmi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c
index 0d2c0ab0a63e..edf31bf8db1d 100644
--- a/drivers/gpu/drm/tegra/hdmi.c
+++ b/drivers/gpu/drm/tegra/hdmi.c
@@ -1128,11 +1128,11 @@ static void tegra_hdmi_early_unregister(struct drm_connector *connector)
 	kfree(hdmi->debugfs_files);
 	hdmi->debugfs_files = NULL;
 }
 
 static const struct drm_connector_funcs tegra_hdmi_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.detect = tegra_hdmi_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = tegra_output_connector_destroy,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 41/75] drm/tests: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (40 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard

The tests connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
 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_probe_helper_test.c  | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/tests/drm_atomic_commit_test.c b/drivers/gpu/drm/tests/drm_atomic_commit_test.c
index ff69bade19b8..1121246dbb9f 100644
--- a/drivers/gpu/drm/tests/drm_atomic_commit_test.c
+++ b/drivers/gpu/drm/tests/drm_atomic_commit_test.c
@@ -51,11 +51,11 @@ static const struct drm_encoder_helper_funcs drm_atomic_test_encoder_funcs = {
 };
 
 static const struct drm_connector_funcs dummy_connector_funcs = {
 	.atomic_destroy_state	= drm_atomic_helper_connector_destroy_state,
 	.atomic_duplicate_state	= drm_atomic_helper_connector_duplicate_state,
-	.reset			= drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 };
 
 static int drm_atomic_test_dummy_get_modes(struct drm_connector *connector)
 {
 	return drm_connector_helper_get_modes_fixed(connector,
diff --git a/drivers/gpu/drm/tests/drm_atomic_test.c b/drivers/gpu/drm/tests/drm_atomic_test.c
index ea91bec6569e..e9f8f4fbdc4b 100644
--- a/drivers/gpu/drm/tests/drm_atomic_test.c
+++ b/drivers/gpu/drm/tests/drm_atomic_test.c
@@ -23,11 +23,11 @@ static const struct drm_connector_helper_funcs drm_atomic_init_connector_helper_
 };
 
 static const struct drm_connector_funcs drm_atomic_init_connector_funcs = {
 	.atomic_destroy_state	= drm_atomic_helper_connector_destroy_state,
 	.atomic_duplicate_state	= drm_atomic_helper_connector_duplicate_state,
-	.reset			= drm_atomic_helper_connector_reset,
+	.atomic_create_state	= drm_atomic_helper_connector_create_state,
 };
 
 static struct drm_atomic_test_priv *create_device(struct kunit *test)
 {
 	struct drm_atomic_test_priv *priv;
diff --git a/drivers/gpu/drm/tests/drm_connector_test.c b/drivers/gpu/drm/tests/drm_connector_test.c
index 3368aedd4e66..0d8d3462d024 100644
--- a/drivers/gpu/drm/tests/drm_connector_test.c
+++ b/drivers/gpu/drm/tests/drm_connector_test.c
@@ -48,11 +48,11 @@ static const struct drm_connector_hdmi_funcs dummy_hdmi_funcs = {
 };
 
 static const struct drm_connector_funcs dummy_funcs = {
 	.atomic_destroy_state	= drm_atomic_helper_connector_destroy_state,
 	.atomic_duplicate_state	= drm_atomic_helper_connector_duplicate_state,
-	.reset			= drm_atomic_helper_connector_reset,
+	.atomic_create_state	= drm_atomic_helper_connector_create_state,
 };
 
 static int dummy_ddc_xfer(struct i2c_adapter *adapter,
 			  struct i2c_msg *msgs, int num)
 {
@@ -202,11 +202,11 @@ static struct kunit_suite drmm_connector_init_test_suite = {
 };
 
 static const struct drm_connector_funcs dummy_dynamic_init_funcs = {
 	.atomic_destroy_state	= drm_atomic_helper_connector_destroy_state,
 	.atomic_duplicate_state	= drm_atomic_helper_connector_duplicate_state,
-	.reset			= drm_atomic_helper_connector_reset,
+	.atomic_create_state	= drm_atomic_helper_connector_create_state,
 	.destroy		= drm_connector_cleanup,
 };
 
 /*
  * Test that the initialization of a bog standard dynamic connector works
diff --git a/drivers/gpu/drm/tests/drm_probe_helper_test.c b/drivers/gpu/drm/tests/drm_probe_helper_test.c
index db0e4f5df275..38485d42dddb 100644
--- a/drivers/gpu/drm/tests/drm_probe_helper_test.c
+++ b/drivers/gpu/drm/tests/drm_probe_helper_test.c
@@ -25,11 +25,11 @@ static const struct drm_connector_helper_funcs drm_probe_helper_connector_helper
 };
 
 static const struct drm_connector_funcs drm_probe_helper_connector_funcs = {
 	.atomic_destroy_state	= drm_atomic_helper_connector_destroy_state,
 	.atomic_duplicate_state	= drm_atomic_helper_connector_duplicate_state,
-	.reset			= drm_atomic_helper_connector_reset,
+	.atomic_create_state	= drm_atomic_helper_connector_create_state,
 };
 
 static int drm_probe_helper_test_init(struct kunit *test)
 {
 	struct drm_probe_helper_test_priv *priv;

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 42/75] drm/tiny: arcpgu: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (41 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Alexey Brodkin

The tiny: arcpgu connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Alexey Brodkin <abrodkin@synopsys.com>
---
 drivers/gpu/drm/tiny/arcpgu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/tiny/arcpgu.c b/drivers/gpu/drm/tiny/arcpgu.c
index cdbf28db8fa1..d0463bbb1dee 100644
--- a/drivers/gpu/drm/tiny/arcpgu.c
+++ b/drivers/gpu/drm/tiny/arcpgu.c
@@ -96,11 +96,11 @@ static const struct drm_connector_helper_funcs
 arcpgu_drm_connector_helper_funcs = {
 	.get_modes = arcpgu_drm_connector_get_modes,
 };
 
 static const struct drm_connector_funcs arcpgu_drm_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 43/75] drm/tiny: bochs: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (42 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  2026-10-14 17:56   ` sashiko-bot
  -1 siblings, 1 reply; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Gerd Hoffmann, virtualization

The tiny: bochs connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: virtualization@lists.linux.dev
---
 drivers/gpu/drm/tiny/bochs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/tiny/bochs.c b/drivers/gpu/drm/tiny/bochs.c
index 8192decddbc1..771d59b92f67 100644
--- a/drivers/gpu/drm/tiny/bochs.c
+++ b/drivers/gpu/drm/tiny/bochs.c
@@ -590,11 +590,11 @@ static const struct drm_connector_helper_funcs bochs_connector_helper_funcs = {
 };
 
 static const struct drm_connector_funcs bochs_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static enum drm_mode_status bochs_mode_config_mode_valid(struct drm_device *dev,

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 44/75] drm/tiny: cirrus: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (43 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  2026-10-14 17:57   ` sashiko-bot
  -1 siblings, 1 reply; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Dave Airlie, Gerd Hoffmann,
	virtualization

The tiny: cirrus connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Dave Airlie <airlied@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: virtualization@lists.linux.dev
---
 drivers/gpu/drm/tiny/cirrus-qemu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/tiny/cirrus-qemu.c b/drivers/gpu/drm/tiny/cirrus-qemu.c
index 63c242e25662..9e3051b9c3f7 100644
--- a/drivers/gpu/drm/tiny/cirrus-qemu.c
+++ b/drivers/gpu/drm/tiny/cirrus-qemu.c
@@ -448,11 +448,11 @@ static const struct drm_connector_helper_funcs cirrus_connector_helper_funcs = {
 };
 
 static const struct drm_connector_funcs cirrus_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static int cirrus_pipe_init(struct cirrus_device *cirrus)

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 45/75] drm/tiny: gm12u320: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (44 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Hans de Goede

The tiny: gm12u320 connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Hans de Goede <hansg@kernel.org>
---
 drivers/gpu/drm/tiny/gm12u320.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/tiny/gm12u320.c b/drivers/gpu/drm/tiny/gm12u320.c
index ddc19cd3e03c..5c4004346ff8 100644
--- a/drivers/gpu/drm/tiny/gm12u320.c
+++ b/drivers/gpu/drm/tiny/gm12u320.c
@@ -545,11 +545,11 @@ static const struct drm_connector_helper_funcs gm12u320_conn_helper_funcs = {
 };
 
 static const struct drm_connector_funcs gm12u320_conn_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static int gm12u320_conn_init(struct gm12u320_device *gm12u320)

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 46/75] drm/tiny: pixpaper: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (45 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, LiangCheng Wang

The tiny: pixpaper connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: LiangCheng Wang <zaq14760@gmail.com>
---
 drivers/gpu/drm/tiny/pixpaper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/tiny/pixpaper.c b/drivers/gpu/drm/tiny/pixpaper.c
index b69e7c30607e..331656b1989b 100644
--- a/drivers/gpu/drm/tiny/pixpaper.c
+++ b/drivers/gpu/drm/tiny/pixpaper.c
@@ -989,11 +989,11 @@ static const struct drm_crtc_helper_funcs pixpaper_crtc_helper_funcs = {
 static const struct drm_encoder_funcs pixpaper_encoder_funcs = {
 	.destroy = drm_encoder_cleanup,
 };
 
 static const struct drm_connector_funcs pixpaper_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 47/75] drm/tiny: repaper: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (46 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Alex Lanzano

The tiny: repaper connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Alex Lanzano <lanzano.alex@gmail.com>
---
 drivers/gpu/drm/tiny/repaper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/tiny/repaper.c b/drivers/gpu/drm/tiny/repaper.c
index 82c99d86656f..08daee20f584 100644
--- a/drivers/gpu/drm/tiny/repaper.c
+++ b/drivers/gpu/drm/tiny/repaper.c
@@ -924,11 +924,11 @@ static int repaper_connector_get_modes(struct drm_connector *connector)
 static const struct drm_connector_helper_funcs repaper_connector_hfuncs = {
 	.get_modes = repaper_connector_get_modes,
 };
 
 static const struct drm_connector_funcs repaper_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 48/75] drm/tiny: sharp: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (47 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Alex Lanzano

The tiny: sharp connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Alex Lanzano <lanzano.alex@gmail.com>
---
 drivers/gpu/drm/tiny/sharp-memory.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/tiny/sharp-memory.c b/drivers/gpu/drm/tiny/sharp-memory.c
index 434e73bd25a5..29c63eb9f945 100644
--- a/drivers/gpu/drm/tiny/sharp-memory.c
+++ b/drivers/gpu/drm/tiny/sharp-memory.c
@@ -367,11 +367,11 @@ static int sharp_memory_connector_get_modes(struct drm_connector *connector)
 static const struct drm_connector_helper_funcs sharp_memory_connector_hfuncs = {
 	.get_modes = sharp_memory_connector_get_modes,
 };
 
 static const struct drm_connector_funcs sharp_memory_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 49/75] drm/udl: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (48 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Dave Airlie, Sean Paul

The udl connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Dave Airlie <airlied@redhat.com>
Cc: Sean Paul <sean@poorly.run>
---
 drivers/gpu/drm/udl/udl_modeset.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/udl/udl_modeset.c b/drivers/gpu/drm/udl/udl_modeset.c
index dee085406ac2..7470fe3f34ee 100644
--- a/drivers/gpu/drm/udl/udl_modeset.c
+++ b/drivers/gpu/drm/udl/udl_modeset.c
@@ -449,11 +449,11 @@ static const struct drm_connector_helper_funcs udl_connector_helper_funcs = {
 	.get_modes = udl_connector_helper_get_modes,
 	.detect_ctx = udl_connector_helper_detect_ctx,
 };
 
 static const struct drm_connector_funcs udl_connector_funcs = {
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 50/75] drm/vboxvideo: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (49 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Hans de Goede

The vboxvideo connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Hans de Goede <hansg@kernel.org>
---
 drivers/gpu/drm/vboxvideo/vbox_mode.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/vboxvideo/vbox_mode.c b/drivers/gpu/drm/vboxvideo/vbox_mode.c
index 7c34299fa531..d66dc1cbbd82 100644
--- a/drivers/gpu/drm/vboxvideo/vbox_mode.c
+++ b/drivers/gpu/drm/vboxvideo/vbox_mode.c
@@ -798,11 +798,11 @@ static const struct drm_connector_helper_funcs vbox_connector_helper_funcs = {
 
 static const struct drm_connector_funcs vbox_connector_funcs = {
 	.detect = vbox_connector_detect,
 	.fill_modes = vbox_fill_modes,
 	.destroy = vbox_connector_destroy,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static int vbox_connector_init(struct drm_device *dev,

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 51/75] drm/vc4: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (50 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Maíra Canal, Dave Stevenson,
	Raspberry Pi Kernel Maintenance

The vc4 connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: "Maíra Canal" <mcanal@igalia.com>
Cc: Dave Stevenson <dave.stevenson@raspberrypi.com>
Cc: Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
---
 drivers/gpu/drm/vc4/tests/vc4_mock_output.c | 2 +-
 drivers/gpu/drm/vc4/vc4_txp.c               | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/vc4/tests/vc4_mock_output.c b/drivers/gpu/drm/vc4/tests/vc4_mock_output.c
index b53c3635ce67..54f952e4b1ac 100644
--- a/drivers/gpu/drm/vc4/tests/vc4_mock_output.c
+++ b/drivers/gpu/drm/vc4/tests/vc4_mock_output.c
@@ -15,11 +15,11 @@ static const struct drm_connector_helper_funcs vc4_dummy_connector_helper_funcs
 };
 
 static const struct drm_connector_funcs vc4_dummy_connector_funcs = {
 	.atomic_destroy_state	= drm_atomic_helper_connector_destroy_state,
 	.atomic_duplicate_state	= drm_atomic_helper_connector_duplicate_state,
-	.reset			= drm_atomic_helper_connector_reset,
+	.atomic_create_state	= drm_atomic_helper_connector_create_state,
 };
 
 struct vc4_dummy_output *vc4_dummy_output(struct kunit *test,
 					  struct drm_device *drm,
 					  struct drm_crtc *crtc,
diff --git a/drivers/gpu/drm/vc4/vc4_txp.c b/drivers/gpu/drm/vc4/vc4_txp.c
index c469f8b1068b..642953cba25f 100644
--- a/drivers/gpu/drm/vc4/vc4_txp.c
+++ b/drivers/gpu/drm/vc4/vc4_txp.c
@@ -376,11 +376,11 @@ vc4_txp_connector_detect(struct drm_connector *connector, bool force)
 
 static const struct drm_connector_funcs vc4_txp_connector_funcs = {
 	.detect = vc4_txp_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static void vc4_txp_encoder_disable(struct drm_encoder *encoder)

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 52/75] drm/virtio: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (51 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  2026-10-14 18:10   ` sashiko-bot
  -1 siblings, 1 reply; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Chia-I Wu, David Airlie,
	Dmitry Osipenko, Gerd Hoffmann, Gurchetan Singh, virtualization

The virtio connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Chia-I Wu <olvaffe@gmail.com>
Cc: David Airlie <airlied@redhat.com>
Cc: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Gurchetan Singh <gurchetansingh@chromium.org>
Cc: virtualization@lists.linux.dev
---
 drivers/gpu/drm/virtio/virtgpu_display.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
index b60aab07e78d..f0ed9bd27a91 100644
--- a/drivers/gpu/drm/virtio/virtgpu_display.c
+++ b/drivers/gpu/drm/virtio/virtgpu_display.c
@@ -268,11 +268,11 @@ static void virtio_gpu_conn_destroy(struct drm_connector *connector)
 
 static const struct drm_connector_funcs virtio_gpu_connector_funcs = {
 	.detect = virtio_gpu_conn_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = virtio_gpu_conn_destroy,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static int vgdev_output_init(struct virtio_gpu_device *vgdev, int index)

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 53/75] drm/vkms: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (52 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Haneen Mohammed, Louis Chauvet,
	Melissa Wen

The vkms connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Haneen Mohammed <hamohammed.sa@gmail.com>
Cc: Louis Chauvet <louis.chauvet@bootlin.com>
Cc: Melissa Wen <melissa.srw@gmail.com>
---
 drivers/gpu/drm/vkms/vkms_connector.c | 2 +-
 drivers/gpu/drm/vkms/vkms_writeback.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/vkms/vkms_connector.c b/drivers/gpu/drm/vkms/vkms_connector.c
index b0a6b212d3f4..57138027966f 100644
--- a/drivers/gpu/drm/vkms/vkms_connector.c
+++ b/drivers/gpu/drm/vkms/vkms_connector.c
@@ -35,11 +35,11 @@ static enum drm_connector_status vkms_connector_detect(struct drm_connector *con
 }
 
 static const struct drm_connector_funcs vkms_connector_funcs = {
 	.detect = vkms_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static int vkms_conn_get_modes(struct drm_connector *connector)
diff --git a/drivers/gpu/drm/vkms/vkms_writeback.c b/drivers/gpu/drm/vkms/vkms_writeback.c
index ecf29a2c0c8e..858df1f89f66 100644
--- a/drivers/gpu/drm/vkms/vkms_writeback.c
+++ b/drivers/gpu/drm/vkms/vkms_writeback.c
@@ -24,11 +24,11 @@ static const u32 vkms_wb_formats[] = {
 	DRM_FORMAT_RGB565
 };
 
 static const struct drm_connector_funcs vkms_wb_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static int vkms_wb_atomic_check(struct drm_connector *connector,

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 54/75] drm/xen: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (53 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Oleksandr Andrushchenko

The xen connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook.

Switch to drm_atomic_helper_connector_create_state() instead.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
 drivers/gpu/drm/xen/xen_drm_front_conn.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xen/xen_drm_front_conn.c b/drivers/gpu/drm/xen/xen_drm_front_conn.c
index a1ba6d3d0568..8ceac0947be2 100644
--- a/drivers/gpu/drm/xen/xen_drm_front_conn.c
+++ b/drivers/gpu/drm/xen/xen_drm_front_conn.c
@@ -92,11 +92,11 @@ static const struct drm_connector_helper_funcs connector_helper_funcs = {
 };
 
 static const struct drm_connector_funcs connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
-	.reset = drm_atomic_helper_connector_reset,
+	.atomic_create_state = drm_atomic_helper_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 int xen_drm_front_conn_init(struct xen_drm_front_drm_info *drm_info,

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 55/75] drm/atomic-state-helper: Rename connector_tv_margins_reset to state_init
  2026-10-14 17:26 ` Maxime Ripard
                   ` (54 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Maíra Canal, Dave Stevenson,
	Raspberry Pi Kernel Maintenance, Ruben Wauters

Recent commits renamed other reset helpers to use the state_init
suffix when they only initialize properties rather than allocate or
update the object state itself.

drm_atomic_helper_connector_tv_margins_reset() falls in the same
category: it initializes the TV margin properties from the kernel
command line without allocating any state. It also reads the
connector state through connector->state, coupling it to the reset
path.

Rename it to drm_atomic_helper_connector_tv_margins_state_init() and
pass the connector state explicitly as a parameter. This decouples
it from the reset hook and prepares for the conversion to
atomic_create_state where connector->state is not yet assigned.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: "Maíra Canal" <mcanal@igalia.com>
Cc: Dave Stevenson <dave.stevenson@raspberrypi.com>
Cc: Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
Cc: Ruben Wauters <rubenru09@aol.com>
---
 drivers/gpu/drm/drm_atomic_state_helper.c | 14 ++++++++------
 drivers/gpu/drm/gud/gud_connector.c       |  3 ++-
 drivers/gpu/drm/vc4/vc4_hdmi.c            |  3 ++-
 include/drm/drm_atomic_state_helper.h     |  3 ++-
 4 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c
index 406157a3660f..6238066fd5d6 100644
--- a/drivers/gpu/drm/drm_atomic_state_helper.c
+++ b/drivers/gpu/drm/drm_atomic_state_helper.c
@@ -480,26 +480,27 @@ drm_atomic_helper_connector_create_state(struct drm_connector *connector)
 	return state;
 }
 EXPORT_SYMBOL(drm_atomic_helper_connector_create_state);
 
 /**
- * drm_atomic_helper_connector_tv_margins_reset - Resets TV connector properties
+ * drm_atomic_helper_connector_tv_margins_state_init - Initializes TV connector properties
+ * @state: the DRM State object
  * @connector: DRM connector
  *
- * Resets the TV-related properties attached to a connector.
+ * Initializes the TV-related properties attached to a connector.
  */
-void drm_atomic_helper_connector_tv_margins_reset(struct drm_connector *connector)
+void drm_atomic_helper_connector_tv_margins_state_init(struct drm_connector_state *state,
+						       struct drm_connector *connector)
 {
 	struct drm_cmdline_mode *cmdline = &connector->cmdline_mode;
-	struct drm_connector_state *state = connector->state;
 
 	state->tv.margins.left = cmdline->tv_margins.left;
 	state->tv.margins.right = cmdline->tv_margins.right;
 	state->tv.margins.top = cmdline->tv_margins.top;
 	state->tv.margins.bottom = cmdline->tv_margins.bottom;
 }
-EXPORT_SYMBOL(drm_atomic_helper_connector_tv_margins_reset);
+EXPORT_SYMBOL(drm_atomic_helper_connector_tv_margins_state_init);
 
 /**
  * drm_atomic_helper_connector_tv_reset - Resets Analog TV connector properties
  * @connector: DRM connector
  *
@@ -568,11 +569,12 @@ void drm_atomic_helper_connector_tv_reset(struct drm_connector *connector)
 	if (prop)
 		if (!drm_object_property_get_default_value(&connector->base,
 							   prop, &val))
 			state->tv.hue = val;
 
-	drm_atomic_helper_connector_tv_margins_reset(connector);
+	drm_atomic_helper_connector_tv_margins_state_init(connector->state,
+							  connector);
 }
 EXPORT_SYMBOL(drm_atomic_helper_connector_tv_reset);
 
 /**
  * drm_atomic_helper_connector_tv_check - Validate an analog TV connector state
diff --git a/drivers/gpu/drm/gud/gud_connector.c b/drivers/gpu/drm/gud/gud_connector.c
index 8141c3a1e30a..a57f2565d33e 100644
--- a/drivers/gpu/drm/gud/gud_connector.c
+++ b/drivers/gpu/drm/gud/gud_connector.c
@@ -352,11 +352,12 @@ static void gud_connector_reset(struct drm_connector *connector)
 	struct gud_connector *gconn = to_gud_connector(connector);
 
 	drm_atomic_helper_connector_reset(connector);
 	connector->state->tv = gconn->initial_tv_state;
 	/* Set margins from command line */
-	drm_atomic_helper_connector_tv_margins_reset(connector);
+	drm_atomic_helper_connector_tv_margins_state_init(connector->state,
+							  connector);
 	if (gconn->initial_brightness >= 0)
 		connector->state->tv.brightness = gconn->initial_brightness;
 }
 
 static const struct drm_connector_funcs gud_connector_funcs = {
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index 3a90dbb61f4e..cf84eff847d1 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -507,11 +507,12 @@ static int vc4_hdmi_connector_atomic_check(struct drm_connector *connector,
 
 static void vc4_hdmi_connector_reset(struct drm_connector *connector)
 {
 	drm_atomic_helper_connector_reset(connector);
 	__drm_atomic_helper_connector_hdmi_state_init(connector, connector->state);
-	drm_atomic_helper_connector_tv_margins_reset(connector);
+	drm_atomic_helper_connector_tv_margins_state_init(connector->state,
+							  connector);
 }
 
 static const struct drm_connector_funcs vc4_hdmi_connector_funcs = {
 	.debugfs_init = drm_hdmi_connector_debugfs_init,
 	.force = drm_atomic_helper_connector_hdmi_force,
diff --git a/include/drm/drm_atomic_state_helper.h b/include/drm/drm_atomic_state_helper.h
index 4706eeab52c1..4dac741af22c 100644
--- a/include/drm/drm_atomic_state_helper.h
+++ b/include/drm/drm_atomic_state_helper.h
@@ -72,11 +72,12 @@ void drm_atomic_helper_connector_reset(struct drm_connector *connector);
 struct drm_connector_state *
 drm_atomic_helper_connector_create_state(struct drm_connector *connector);
 void drm_atomic_helper_connector_tv_reset(struct drm_connector *connector);
 int drm_atomic_helper_connector_tv_check(struct drm_connector *connector,
 					 struct drm_atomic_commit *state);
-void drm_atomic_helper_connector_tv_margins_reset(struct drm_connector *connector);
+void drm_atomic_helper_connector_tv_margins_state_init(struct drm_connector_state *state,
+						       struct drm_connector *connector);
 void
 __drm_atomic_helper_connector_duplicate_state(struct drm_connector *connector,
 					   struct drm_connector_state *state);
 struct drm_connector_state *
 drm_atomic_helper_connector_duplicate_state(struct drm_connector *connector);

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 56/75] drm/atomic-state-helper: Rename connector_tv_reset to state_init
  2026-10-14 17:26 ` Maxime Ripard
                   ` (55 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  2026-10-14 18:03   ` sashiko-bot
  -1 siblings, 1 reply; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Maíra Canal, Chen-Yu Tsai,
	Dave Stevenson, Raspberry Pi Kernel Maintenance, Samuel Holland,
	linux-sunxi

Recent commits renamed other reset helpers to use the state_init
suffix when they only initialize properties rather than allocate or
update the object state itself.

drm_atomic_helper_connector_tv_reset() falls in the same category:
it initializes the analog TV properties from the kernel command line
defaults without allocating any state. It also reads the connector
state through connector->state, coupling it to the reset path.

Rename it to drm_atomic_helper_connector_tv_state_init() and pass
the connector state explicitly as a parameter. This decouples it
from the reset hook and prepares for the conversion to
atomic_create_state where connector->state is not yet assigned.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: "Maíra Canal" <mcanal@igalia.com>
Cc: Chen-Yu Tsai <wens@kernel.org>
Cc: Dave Stevenson <dave.stevenson@raspberrypi.com>
Cc: Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
Cc: Samuel Holland <samuel@sholland.org>
Cc: linux-sunxi@lists.linux.dev
---
 drivers/gpu/drm/drm_atomic_state_helper.c | 11 ++++++-----
 drivers/gpu/drm/sun4i/sun4i_tv.c          |  2 +-
 drivers/gpu/drm/vc4/vc4_vec.c             |  2 +-
 include/drm/drm_atomic_state_helper.h     |  3 ++-
 4 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c
index 6238066fd5d6..1424c4873251 100644
--- a/drivers/gpu/drm/drm_atomic_state_helper.c
+++ b/drivers/gpu/drm/drm_atomic_state_helper.c
@@ -499,20 +499,21 @@ void drm_atomic_helper_connector_tv_margins_state_init(struct drm_connector_stat
 	state->tv.margins.bottom = cmdline->tv_margins.bottom;
 }
 EXPORT_SYMBOL(drm_atomic_helper_connector_tv_margins_state_init);
 
 /**
- * drm_atomic_helper_connector_tv_reset - Resets Analog TV connector properties
+ * drm_atomic_helper_connector_tv_state_init - Initializes Analog TV connector properties
+ * @state: the DRM State object
  * @connector: DRM connector
  *
- * Resets the analog TV properties attached to a connector
+ * Initializes the analog TV properties attached to a connector
  */
-void drm_atomic_helper_connector_tv_reset(struct drm_connector *connector)
+void drm_atomic_helper_connector_tv_state_init(struct drm_connector_state *state,
+					       struct drm_connector *connector)
 {
 	struct drm_device *dev = connector->dev;
 	struct drm_cmdline_mode *cmdline = &connector->cmdline_mode;
-	struct drm_connector_state *state = connector->state;
 	struct drm_property *prop;
 	uint64_t val;
 
 	prop = dev->mode_config.tv_mode_property;
 	if (prop)
@@ -572,11 +573,11 @@ void drm_atomic_helper_connector_tv_reset(struct drm_connector *connector)
 			state->tv.hue = val;
 
 	drm_atomic_helper_connector_tv_margins_state_init(connector->state,
 							  connector);
 }
-EXPORT_SYMBOL(drm_atomic_helper_connector_tv_reset);
+EXPORT_SYMBOL(drm_atomic_helper_connector_tv_state_init);
 
 /**
  * drm_atomic_helper_connector_tv_check - Validate an analog TV connector state
  * @connector: DRM Connector
  * @state: the DRM State object
diff --git a/drivers/gpu/drm/sun4i/sun4i_tv.c b/drivers/gpu/drm/sun4i/sun4i_tv.c
index ce22f1662c0c..ea86f8a6a35e 100644
--- a/drivers/gpu/drm/sun4i/sun4i_tv.c
+++ b/drivers/gpu/drm/sun4i/sun4i_tv.c
@@ -406,11 +406,11 @@ static const struct drm_connector_helper_funcs sun4i_tv_comp_connector_helper_fu
 };
 
 static void sun4i_tv_connector_reset(struct drm_connector *connector)
 {
 	drm_atomic_helper_connector_reset(connector);
-	drm_atomic_helper_connector_tv_reset(connector);
+	drm_atomic_helper_connector_tv_state_init(connector->state, connector);
 }
 
 static const struct drm_connector_funcs sun4i_tv_comp_connector_funcs = {
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= drm_connector_cleanup,
diff --git a/drivers/gpu/drm/vc4/vc4_vec.c b/drivers/gpu/drm/vc4/vc4_vec.c
index 792b7b39be59..98cece1e48d8 100644
--- a/drivers/gpu/drm/vc4/vc4_vec.c
+++ b/drivers/gpu/drm/vc4/vc4_vec.c
@@ -379,11 +379,11 @@ vc4_vec_connector_detect(struct drm_connector *connector, bool force)
 }
 
 static void vc4_vec_connector_reset(struct drm_connector *connector)
 {
 	drm_atomic_helper_connector_reset(connector);
-	drm_atomic_helper_connector_tv_reset(connector);
+	drm_atomic_helper_connector_tv_state_init(connector->state, connector);
 }
 
 static int
 vc4_vec_connector_set_property(struct drm_connector *connector,
 			       struct drm_connector_state *state,
diff --git a/include/drm/drm_atomic_state_helper.h b/include/drm/drm_atomic_state_helper.h
index 4dac741af22c..5e8619aeef21 100644
--- a/include/drm/drm_atomic_state_helper.h
+++ b/include/drm/drm_atomic_state_helper.h
@@ -69,11 +69,12 @@ void __drm_atomic_helper_connector_state_init(struct drm_connector_state *conn_s
 void __drm_atomic_helper_connector_reset(struct drm_connector *connector,
 					 struct drm_connector_state *conn_state);
 void drm_atomic_helper_connector_reset(struct drm_connector *connector);
 struct drm_connector_state *
 drm_atomic_helper_connector_create_state(struct drm_connector *connector);
-void drm_atomic_helper_connector_tv_reset(struct drm_connector *connector);
+void drm_atomic_helper_connector_tv_state_init(struct drm_connector_state *state,
+					       struct drm_connector *connector);
 int drm_atomic_helper_connector_tv_check(struct drm_connector *connector,
 					 struct drm_atomic_commit *state);
 void drm_atomic_helper_connector_tv_margins_state_init(struct drm_connector_state *state,
 						       struct drm_connector *connector);
 void

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 57/75] drm/bridge: synopsys: dw-hdmi: Convert to atomic_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (56 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  2026-10-14 18:14   ` sashiko-bot
  -1 siblings, 1 reply; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard

The dw-hdmi driver calls drm_atomic_helper_connector_reset() during
connector creation to allocate an initial connector state needed by
drm_connector_attach_max_bpc_property(). However, the driver only
needs to allocate a pristine state, which is exactly what
atomic_create_state provides.

Convert to drm_atomic_helper_connector_create_state() with proper
error handling.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index 917cf764c9c5..5f11707c67b5 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -2603,11 +2603,19 @@ static int dw_hdmi_connector_create(struct dw_hdmi *hdmi)
 
 	/*
 	 * drm_connector_attach_max_bpc_property() requires the
 	 * connector to have a state.
 	 */
-	drm_atomic_helper_connector_reset(connector);
+	if (!connector->state) {
+		struct drm_connector_state *conn_state;
+
+		conn_state = drm_atomic_helper_connector_create_state(connector);
+		if (IS_ERR(conn_state))
+			return PTR_ERR(conn_state);
+
+		connector->state = conn_state;
+	}
 
 	drm_connector_attach_max_bpc_property(connector, 8, 16);
 
 	if (hdmi->version >= 0x200a && hdmi->plat_data->use_drm_infoframe)
 		drm_connector_attach_hdr_output_metadata_property(connector);

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 58/75] drm/meson: Convert to atomic_create_state
  2026-10-14 17:26 ` Maxime Ripard
@ 2026-10-14 17:27   ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Jerome Brunet, Kevin Hilman,
	Martin Blumenstingl, linux-amlogic

The meson HDMI encoder calls drm_atomic_helper_connector_reset()
during connector creation to allocate an initial connector state
needed by drm_connector_attach_max_bpc_property(). However, the
driver only needs to allocate a pristine state, which is exactly
what atomic_create_state provides.

Convert to drm_atomic_helper_connector_create_state() with proper
error handling.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Jerome Brunet <jbrunet@baylibre.com>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Cc: linux-amlogic@lists.infradead.org
---
 drivers/gpu/drm/meson/meson_encoder_hdmi.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/meson/meson_encoder_hdmi.c b/drivers/gpu/drm/meson/meson_encoder_hdmi.c
index c4355c5cc340..c04e381b2c10 100644
--- a/drivers/gpu/drm/meson/meson_encoder_hdmi.c
+++ b/drivers/gpu/drm/meson/meson_encoder_hdmi.c
@@ -446,11 +446,21 @@ int meson_encoder_hdmi_probe(struct meson_drm *priv)
 
 	/*
 	 * drm_connector_attach_max_bpc_property() requires the
 	 * connector to have a state.
 	 */
-	drm_atomic_helper_connector_reset(meson_encoder_hdmi->connector);
+	if (!meson_encoder_hdmi->connector->state) {
+		struct drm_connector_state *conn_state;
+		
+		conn_state = drm_atomic_helper_connector_create_state(meson_encoder_hdmi->connector);
+		if (IS_ERR(conn_state)) {
+			ret = PTR_ERR(conn_state);
+			goto err_put_node;
+		}
+
+		meson_encoder_hdmi->connector->state = conn_state;
+	}
 
 	if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_GXL) ||
 	    meson_vpu_is_compatible(priv, VPU_COMPATIBLE_GXM) ||
 	    meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A))
 		drm_connector_attach_hdr_output_metadata_property(meson_encoder_hdmi->connector);

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 58/75] drm/meson: Convert to atomic_create_state
@ 2026-10-14 17:27   ` Maxime Ripard
  0 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Jerome Brunet, Kevin Hilman,
	Martin Blumenstingl, linux-amlogic

The meson HDMI encoder calls drm_atomic_helper_connector_reset()
during connector creation to allocate an initial connector state
needed by drm_connector_attach_max_bpc_property(). However, the
driver only needs to allocate a pristine state, which is exactly
what atomic_create_state provides.

Convert to drm_atomic_helper_connector_create_state() with proper
error handling.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Jerome Brunet <jbrunet@baylibre.com>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Cc: linux-amlogic@lists.infradead.org
---
 drivers/gpu/drm/meson/meson_encoder_hdmi.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/meson/meson_encoder_hdmi.c b/drivers/gpu/drm/meson/meson_encoder_hdmi.c
index c4355c5cc340..c04e381b2c10 100644
--- a/drivers/gpu/drm/meson/meson_encoder_hdmi.c
+++ b/drivers/gpu/drm/meson/meson_encoder_hdmi.c
@@ -446,11 +446,21 @@ int meson_encoder_hdmi_probe(struct meson_drm *priv)
 
 	/*
 	 * drm_connector_attach_max_bpc_property() requires the
 	 * connector to have a state.
 	 */
-	drm_atomic_helper_connector_reset(meson_encoder_hdmi->connector);
+	if (!meson_encoder_hdmi->connector->state) {
+		struct drm_connector_state *conn_state;
+		
+		conn_state = drm_atomic_helper_connector_create_state(meson_encoder_hdmi->connector);
+		if (IS_ERR(conn_state)) {
+			ret = PTR_ERR(conn_state);
+			goto err_put_node;
+		}
+
+		meson_encoder_hdmi->connector->state = conn_state;
+	}
 
 	if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_GXL) ||
 	    meson_vpu_is_compatible(priv, VPU_COMPATIBLE_GXM) ||
 	    meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A))
 		drm_connector_attach_hdr_output_metadata_property(meson_encoder_hdmi->connector);

-- 
2.55.0


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 59/75] drm/gud: Convert to atomic_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (58 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Ruben Wauters

The gud connector reset implementation creates a pristine state,
then initializes driver-specific TV properties, margins, and
brightness from the initial state. It does not perform any hardware
reset.

Since this is equivalent to what atomic_create_state expects, convert
the reset function to an atomic_create_state hook that returns the
initialized state.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Ruben Wauters <rubenru09@aol.com>
---
 drivers/gpu/drm/gud/gud_connector.c | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/gud/gud_connector.c b/drivers/gpu/drm/gud/gud_connector.c
index a57f2565d33e..ddbf3b3ebbca 100644
--- a/drivers/gpu/drm/gud/gud_connector.c
+++ b/drivers/gpu/drm/gud/gud_connector.c
@@ -345,29 +345,36 @@ static void gud_connector_destroy(struct drm_connector *connector)
 	drm_connector_cleanup(connector);
 	kfree(gconn->properties);
 	kfree(gconn);
 }
 
-static void gud_connector_reset(struct drm_connector *connector)
+static struct drm_connector_state *
+gud_connector_create_state(struct drm_connector *connector)
 {
+	struct drm_connector_state *connector_state;
 	struct gud_connector *gconn = to_gud_connector(connector);
 
-	drm_atomic_helper_connector_reset(connector);
-	connector->state->tv = gconn->initial_tv_state;
+	connector_state = drm_atomic_helper_connector_create_state(connector);
+	if (IS_ERR(connector_state))
+		return connector_state;
+
+	connector_state->tv = gconn->initial_tv_state;
 	/* Set margins from command line */
-	drm_atomic_helper_connector_tv_margins_state_init(connector->state,
+	drm_atomic_helper_connector_tv_margins_state_init(connector_state,
 							  connector);
 	if (gconn->initial_brightness >= 0)
-		connector->state->tv.brightness = gconn->initial_brightness;
+		connector_state->tv.brightness = gconn->initial_brightness;
+
+	return connector_state;
 }
 
 static const struct drm_connector_funcs gud_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.late_register = gud_connector_late_register,
 	.early_unregister = gud_connector_early_unregister,
 	.destroy = gud_connector_destroy,
-	.reset = gud_connector_reset,
+	.atomic_create_state = gud_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 /*

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 60/75] drm/sun4i: hdmi: Convert to atomic_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (59 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Chen-Yu Tsai, Samuel Holland,
	linux-sunxi

The sun4i HDMI connector reset implementation creates a pristine
state and initializes the HDMI state. It does not perform any
hardware reset.

Since this is equivalent to what atomic_create_state expects, convert
the reset function to an atomic_create_state hook that returns the
initialized state.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Chen-Yu Tsai <wens@kernel.org>
Cc: Samuel Holland <samuel@sholland.org>
Cc: linux-sunxi@lists.linux.dev
---
 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
index d98b6f12a7bc..1226228c2ab3 100644
--- a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
+++ b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
@@ -283,21 +283,30 @@ sun4i_hdmi_connector_detect(struct drm_connector *connector, bool force)
 	}
 
 	return connector_status_connected;
 }
 
-static void sun4i_hdmi_connector_reset(struct drm_connector *connector)
+static struct drm_connector_state *
+sun4i_hdmi_connector_create_state(struct drm_connector *connector)
 {
-	drm_atomic_helper_connector_reset(connector);
-	__drm_atomic_helper_connector_hdmi_state_init(connector, connector->state);
+	struct drm_connector_state *connector_state;
+
+	connector_state = drm_atomic_helper_connector_create_state(connector);
+	if (IS_ERR(connector_state))
+		return connector_state;
+
+	__drm_atomic_helper_connector_hdmi_state_init(connector,
+						      connector_state);
+
+	return connector_state;
 }
 
 static const struct drm_connector_funcs sun4i_hdmi_connector_funcs = {
 	.debugfs_init		= drm_hdmi_connector_debugfs_init,
 	.detect			= sun4i_hdmi_connector_detect,
 	.fill_modes		= drm_helper_probe_single_connector_modes,
-	.reset			= sun4i_hdmi_connector_reset,
+	.atomic_create_state	= sun4i_hdmi_connector_create_state,
 	.atomic_duplicate_state	= drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state	= drm_atomic_helper_connector_destroy_state,
 };
 
 #ifdef CONFIG_DRM_SUN4I_HDMI_CEC

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 61/75] drm/sun4i: tv: Convert to atomic_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (60 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  2026-10-14 18:08   ` sashiko-bot
  -1 siblings, 1 reply; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Chen-Yu Tsai, Samuel Holland,
	linux-sunxi

The sun4i TV connector reset implementation creates a pristine state
and initializes the analog TV properties. It does not perform any
hardware reset.

Since this is equivalent to what atomic_create_state expects, convert
the reset function to an atomic_create_state hook that returns the
initialized state.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Chen-Yu Tsai <wens@kernel.org>
Cc: Samuel Holland <samuel@sholland.org>
Cc: linux-sunxi@lists.linux.dev
---
 drivers/gpu/drm/sun4i/sun4i_tv.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/sun4i/sun4i_tv.c b/drivers/gpu/drm/sun4i/sun4i_tv.c
index ea86f8a6a35e..a68e5f7a03d2 100644
--- a/drivers/gpu/drm/sun4i/sun4i_tv.c
+++ b/drivers/gpu/drm/sun4i/sun4i_tv.c
@@ -403,20 +403,28 @@ static const struct drm_encoder_helper_funcs sun4i_tv_helper_funcs = {
 static const struct drm_connector_helper_funcs sun4i_tv_comp_connector_helper_funcs = {
 	.atomic_check	= drm_atomic_helper_connector_tv_check,
 	.get_modes	= drm_connector_helper_tv_get_modes,
 };
 
-static void sun4i_tv_connector_reset(struct drm_connector *connector)
+static struct drm_connector_state *
+sun4i_tv_connector_create_state(struct drm_connector *connector)
 {
-	drm_atomic_helper_connector_reset(connector);
-	drm_atomic_helper_connector_tv_state_init(connector->state, connector);
+	struct drm_connector_state *connector_state;
+
+	connector_state = drm_atomic_helper_connector_create_state(connector);
+	if (IS_ERR(connector_state))
+		return connector_state;
+
+	drm_atomic_helper_connector_tv_state_init(connector_state, connector);
+
+	return connector_state;
 }
 
 static const struct drm_connector_funcs sun4i_tv_comp_connector_funcs = {
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= drm_connector_cleanup,
-	.reset			= sun4i_tv_connector_reset,
+	.atomic_create_state	= sun4i_tv_connector_create_state,
 	.atomic_duplicate_state	= drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state	= drm_atomic_helper_connector_destroy_state,
 };
 
 static const struct regmap_config sun4i_tv_regmap_config = {

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 62/75] drm/tests: hdmi: Convert to atomic_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (61 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard

The test HDMI connector reset implementation creates a pristine
state and initializes the HDMI state. It does not perform any
hardware reset.

Since this is equivalent to what atomic_create_state expects, convert
the reset function to an atomic_create_state hook that returns the
initialized state.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
 drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
index b2e347863a77..ae7b009052c2 100644
--- a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
+++ b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
@@ -197,21 +197,30 @@ static const struct drm_connector_helper_funcs dummy_connector_helper_funcs = {
 	.atomic_check	= drm_atomic_helper_connector_hdmi_check,
 	.get_modes	= dummy_connector_get_modes,
 	.mode_valid	= drm_hdmi_connector_mode_valid,
 };
 
-static void dummy_hdmi_connector_reset(struct drm_connector *connector)
+static struct drm_connector_state *
+dummy_hdmi_connector_create_state(struct drm_connector *connector)
 {
-	drm_atomic_helper_connector_reset(connector);
-	__drm_atomic_helper_connector_hdmi_state_init(connector, connector->state);
+	struct drm_connector_state *connector_state;
+
+	connector_state = drm_atomic_helper_connector_create_state(connector);
+	if (IS_ERR(connector_state))
+		return connector_state;
+
+	__drm_atomic_helper_connector_hdmi_state_init(connector,
+						      connector_state);
+
+	return connector_state;
 }
 
 static const struct drm_connector_funcs dummy_connector_funcs = {
 	.atomic_destroy_state	= drm_atomic_helper_connector_destroy_state,
 	.atomic_duplicate_state	= drm_atomic_helper_connector_duplicate_state,
 	.fill_modes		= drm_helper_probe_single_connector_modes,
-	.reset			= dummy_hdmi_connector_reset,
+	.atomic_create_state	= dummy_hdmi_connector_create_state,
 };
 
 static void test_encoder_atomic_enable(struct drm_encoder *encoder,
 			      struct drm_atomic_commit *state)
 {

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 63/75] drm/vc4: hdmi: Convert to atomic_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (62 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Maíra Canal, Dave Stevenson,
	Raspberry Pi Kernel Maintenance

The vc4 HDMI connector reset implementation creates a pristine state,
initializes the HDMI state, and sets the TV margins. It does not
perform any hardware reset.

Since this is equivalent to what atomic_create_state expects, convert
the reset function to an atomic_create_state hook that returns the
initialized state.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: "Maíra Canal" <mcanal@igalia.com>
Cc: Dave Stevenson <dave.stevenson@raspberrypi.com>
Cc: Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
---
 drivers/gpu/drm/vc4/vc4_hdmi.c | 31 ++++++++++++++++++++++++-------
 1 file changed, 24 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index cf84eff847d1..bf4b19910e56 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -503,23 +503,33 @@ static int vc4_hdmi_connector_atomic_check(struct drm_connector *connector,
 	}
 
 	return drm_atomic_helper_connector_hdmi_check(connector, state);
 }
 
-static void vc4_hdmi_connector_reset(struct drm_connector *connector)
+static struct drm_connector_state *
+vc4_hdmi_connector_create_state(struct drm_connector *connector)
 {
-	drm_atomic_helper_connector_reset(connector);
-	__drm_atomic_helper_connector_hdmi_state_init(connector, connector->state);
-	drm_atomic_helper_connector_tv_margins_state_init(connector->state,
+	struct drm_connector_state *connector_state;
+
+	connector_state = drm_atomic_helper_connector_create_state(connector);
+	if (IS_ERR(connector_state))
+		return connector_state;
+
+	__drm_atomic_helper_connector_hdmi_state_init(connector,
+						      connector_state);
+
+	drm_atomic_helper_connector_tv_margins_state_init(connector_state,
 							  connector);
+
+	return connector_state;
 }
 
 static const struct drm_connector_funcs vc4_hdmi_connector_funcs = {
 	.debugfs_init = drm_hdmi_connector_debugfs_init,
 	.force = drm_atomic_helper_connector_hdmi_force,
 	.fill_modes = drm_helper_probe_single_connector_modes,
-	.reset = vc4_hdmi_connector_reset,
+	.atomic_create_state = vc4_hdmi_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static const struct drm_connector_helper_funcs vc4_hdmi_connector_helper_funcs = {
@@ -566,12 +576,19 @@ static int vc4_hdmi_connector_init(struct drm_device *dev,
 
 	/*
 	 * Some of the properties below require access to state, like bpc.
 	 * Allocate some default initial connector state with our reset helper.
 	 */
-	if (connector->funcs->reset)
-		connector->funcs->reset(connector);
+	if (!connector->state) {
+		struct drm_connector_state *conn_state;
+
+		conn_state = vc4_hdmi_connector_create_state(connector);
+		if (IS_ERR(conn_state))
+			return PTR_ERR(conn_state);
+
+		connector->state = conn_state;
+	}
 
 	/* Create and attach TV margin props to this connector. */
 	ret = drm_mode_create_tv_margin_properties(dev);
 	if (ret)
 		return ret;

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 64/75] drm/vc4: vec: Convert to atomic_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (63 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  2026-10-14 18:10   ` sashiko-bot
  -1 siblings, 1 reply; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Maíra Canal, Dave Stevenson,
	Raspberry Pi Kernel Maintenance

The vc4 VEC connector reset implementation creates a pristine state
and initializes the analog TV properties. It does not perform any
hardware reset.

Since this is equivalent to what atomic_create_state expects, convert
the reset function to an atomic_create_state hook that returns the
initialized state.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: "Maíra Canal" <mcanal@igalia.com>
Cc: Dave Stevenson <dave.stevenson@raspberrypi.com>
Cc: Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
---
 drivers/gpu/drm/vc4/vc4_vec.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/vc4/vc4_vec.c b/drivers/gpu/drm/vc4/vc4_vec.c
index 98cece1e48d8..43124ffc7349 100644
--- a/drivers/gpu/drm/vc4/vc4_vec.c
+++ b/drivers/gpu/drm/vc4/vc4_vec.c
@@ -376,14 +376,22 @@ static enum drm_connector_status
 vc4_vec_connector_detect(struct drm_connector *connector, bool force)
 {
 	return connector_status_unknown;
 }
 
-static void vc4_vec_connector_reset(struct drm_connector *connector)
+static struct drm_connector_state *
+vc4_vec_connector_create_state(struct drm_connector *connector)
 {
-	drm_atomic_helper_connector_reset(connector);
-	drm_atomic_helper_connector_tv_state_init(connector->state, connector);
+	struct drm_connector_state *connector_state;
+
+	connector_state = drm_atomic_helper_connector_create_state(connector);
+	if (IS_ERR(connector_state))
+		return connector_state;
+
+	drm_atomic_helper_connector_tv_state_init(connector_state, connector);
+
+	return connector_state;
 }
 
 static int
 vc4_vec_connector_set_property(struct drm_connector *connector,
 			       struct drm_connector_state *state,
@@ -488,11 +496,11 @@ vc4_vec_connector_get_property(struct drm_connector *connector,
 }
 
 static const struct drm_connector_funcs vc4_vec_connector_funcs = {
 	.detect = vc4_vec_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
-	.reset = vc4_vec_connector_reset,
+	.atomic_create_state = vc4_vec_connector_create_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.atomic_get_property = vc4_vec_connector_get_property,
 	.atomic_set_property = vc4_vec_connector_set_property,
 };

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 65/75] drm/connector: Remove drm_atomic_helper_connector_reset()
  2026-10-14 17:26 ` Maxime Ripard
                   ` (64 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard

All drivers implementing the connector reset hook with
drm_atomic_helper_connector_reset() have been converted to
atomic_create_state.

Remove drm_atomic_helper_connector_reset().

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
 drivers/gpu/drm/display/drm_hdmi_state_helper.c |  3 +--
 drivers/gpu/drm/drm_atomic_state_helper.c       | 20 --------------------
 include/drm/drm_atomic_state_helper.h           |  1 -
 include/drm/drm_connector.h                     |  2 +-
 4 files changed, 2 insertions(+), 24 deletions(-)

diff --git a/drivers/gpu/drm/display/drm_hdmi_state_helper.c b/drivers/gpu/drm/display/drm_hdmi_state_helper.c
index 7cdb7ca3dc12..0780ad5a2f20 100644
--- a/drivers/gpu/drm/display/drm_hdmi_state_helper.c
+++ b/drivers/gpu/drm/display/drm_hdmi_state_helper.c
@@ -312,12 +312,11 @@
  * @connector: DRM connector
  * @new_conn_state: connector state to initialize
  *
  * Initializes all HDMI resources from a @drm_connector_state without
  * actually allocating it. This is useful for HDMI drivers, in
- * combination with __drm_atomic_helper_connector_state_init(),
- * drm_atomic_helper_connector_reset(), or
+ * combination with __drm_atomic_helper_connector_state_init(), or
  * drm_atomic_helper_connector_create_state().
  */
 void __drm_atomic_helper_connector_hdmi_state_init(struct drm_connector *connector,
 						   struct drm_connector_state *new_conn_state)
 {
diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c
index 1424c4873251..8c48031956fe 100644
--- a/drivers/gpu/drm/drm_atomic_state_helper.c
+++ b/drivers/gpu/drm/drm_atomic_state_helper.c
@@ -433,30 +433,10 @@ __drm_atomic_helper_connector_reset(struct drm_connector *connector,
 
 	connector->state = conn_state;
 }
 EXPORT_SYMBOL(__drm_atomic_helper_connector_reset);
 
-/**
- * drm_atomic_helper_connector_reset - default &drm_connector_funcs.reset hook for connectors
- * @connector: drm connector
- *
- * Resets the atomic state for @connector by freeing the state pointer (which
- * might be NULL, e.g. at driver load time) and allocating a new empty state
- * object.
- */
-void drm_atomic_helper_connector_reset(struct drm_connector *connector)
-{
-	struct drm_connector_state *conn_state = kzalloc_obj(*conn_state);
-
-	if (connector->state)
-		__drm_atomic_helper_connector_destroy_state(connector->state);
-
-	kfree(connector->state);
-	__drm_atomic_helper_connector_reset(connector, conn_state);
-}
-EXPORT_SYMBOL(drm_atomic_helper_connector_reset);
-
 /**
  * drm_atomic_helper_connector_create_state - default &drm_connector_funcs.atomic_create_state hook for connectors
  * @connector: connector object
  *
  * Allocates and  initializes pristine @drm_connector_state.
diff --git a/include/drm/drm_atomic_state_helper.h b/include/drm/drm_atomic_state_helper.h
index 5e8619aeef21..7bced7e9d860 100644
--- a/include/drm/drm_atomic_state_helper.h
+++ b/include/drm/drm_atomic_state_helper.h
@@ -66,11 +66,10 @@ void drm_atomic_helper_plane_destroy_state(struct drm_plane *plane,
 
 void __drm_atomic_helper_connector_state_init(struct drm_connector_state *conn_state,
 					       struct drm_connector *connector);
 void __drm_atomic_helper_connector_reset(struct drm_connector *connector,
 					 struct drm_connector_state *conn_state);
-void drm_atomic_helper_connector_reset(struct drm_connector *connector);
 struct drm_connector_state *
 drm_atomic_helper_connector_create_state(struct drm_connector *connector);
 void drm_atomic_helper_connector_tv_state_init(struct drm_connector_state *state,
 					       struct drm_connector *connector);
 int drm_atomic_helper_connector_tv_check(struct drm_connector *connector,
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index 2ee7c59329aa..8b52360339e0 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -1663,11 +1663,11 @@ struct drm_connector_funcs {
 	 *
 	 * Reset connector hardware and software state to off. This function isn't
 	 * called by the core directly, only through drm_mode_config_reset().
 	 * It's not a helper hook only for historical reasons.
 	 *
-	 * Atomic drivers can use drm_atomic_helper_connector_reset() to reset
+	 * Atomic drivers can use __drm_atomic_helper_connector_reset() to reset
 	 * atomic state using this hook.
 	 */
 	void (*reset)(struct drm_connector *connector);
 
 	/**

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 66/75] drm/amdgpu: dm: Convert to atomic_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (65 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  2026-10-14 18:16   ` sashiko-bot
  -1 siblings, 1 reply; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Christian König, Alex Deucher,
	Harry Wentland, Leo Li, Rodrigo Siqueira, amd-gfx

The amdgpu_dm connector reset implementation creates a custom state
subclass, but only initializes a pristine state without resetting any
hardware. This is equivalent to what atomic_create_state expects.
Convert to it.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: "Christian König" <christian.koenig@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Cc: Leo Li <sunpeng.li@amd.com>
Cc: Rodrigo Siqueira <siqueira@igalia.com>
Cc: amd-gfx@lists.freedesktop.org
---
 .../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    |  4 +-
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c   | 14 +++-
 .../amdgpu_dm/tests/amdgpu_dm_connector_test.c     | 90 ++++++++++++++--------
 5 files changed, 91 insertions(+), 52 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c
index 3a4e98b08ac1..2c22f00f521c 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c
@@ -1939,26 +1939,20 @@ STATIC_IFN_KUNIT void amdgpu_dm_connector_destroy(struct drm_connector *connecto
 
 	kfree(connector);
 }
 EXPORT_IF_KUNIT(amdgpu_dm_connector_destroy);
 
-void amdgpu_dm_connector_funcs_reset(struct drm_connector *connector)
+struct drm_connector_state *
+amdgpu_dm_connector_atomic_create_state(struct drm_connector *connector)
 {
-	struct dm_connector_state *old_state =
-		to_dm_connector_state(connector->state);
 	struct dm_connector_state *state;
 
 	state = kzalloc_obj(*state);
 	if (!state)
-		return;
+		return ERR_PTR(-ENOMEM);
 
-	if (connector->state)
-		__drm_atomic_helper_connector_destroy_state(connector->state);
-
-	kfree(old_state);
-
-	__drm_atomic_helper_connector_reset(connector, &state->base);
+	__drm_atomic_helper_connector_state_init(&state->base, connector);
 
 	state->scaling = RMX_OFF;
 	state->underscan_enable = false;
 	state->underscan_hborder = 0;
 	state->underscan_vborder = 0;
@@ -1970,12 +1964,14 @@ void amdgpu_dm_connector_funcs_reset(struct drm_connector *connector)
 		if (amdgpu_dm_abm_level <= 0)
 			state->abm_level = ABM_LEVEL_IMMEDIATE_DISABLE;
 		else
 			state->abm_level = amdgpu_dm_abm_level;
 	}
+
+	return &state->base;
 }
-EXPORT_IF_KUNIT(amdgpu_dm_connector_funcs_reset);
+EXPORT_IF_KUNIT(amdgpu_dm_connector_atomic_create_state);
 
 struct drm_connector_state *
 amdgpu_dm_connector_atomic_duplicate_state(struct drm_connector *connector)
 {
 	struct dm_connector_state *state =
@@ -2070,11 +2066,11 @@ STATIC_IFN_KUNIT void amdgpu_dm_connector_funcs_force(struct drm_connector *conn
 	}
 }
 EXPORT_IF_KUNIT(amdgpu_dm_connector_funcs_force);
 
 static const struct drm_connector_funcs amdgpu_dm_connector_funcs = {
-	.reset = amdgpu_dm_connector_funcs_reset,
+	.atomic_create_state = amdgpu_dm_connector_atomic_create_state,
 	.detect = amdgpu_dm_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = amdgpu_dm_connector_destroy,
 	.atomic_duplicate_state = amdgpu_dm_connector_atomic_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
@@ -3197,12 +3193,20 @@ void amdgpu_dm_connector_init_helper(struct amdgpu_display_manager *dm,
 
 	/*
 	 * Some of the properties below require access to state, like bpc.
 	 * Allocate some default initial connector state with our reset helper.
 	 */
-	if (aconnector->base.funcs->reset)
-		aconnector->base.funcs->reset(&aconnector->base);
+	if (!aconnector->base.state &&
+	    aconnector->base.funcs->atomic_create_state) {
+		struct drm_connector_state *conn_state;
+
+		conn_state = aconnector->base.funcs->atomic_create_state(&aconnector->base);
+		if (IS_ERR(conn_state))
+			return;
+
+		aconnector->base.state = conn_state;
+	}
 
 	aconnector->connector_id = link_index;
 	aconnector->bl_idx = -1;
 	aconnector->dc_link = link;
 	aconnector->base.interlace_allowed = false;
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.h
index 79698deacf61..4a73fc607f38 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.h
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.h
@@ -48,11 +48,12 @@ struct drm_crtc;
 struct drm_device;
 struct drm_display_mode;
 struct drm_edid;
 struct drm_property;
 
-void amdgpu_dm_connector_funcs_reset(struct drm_connector *connector);
+struct drm_connector_state *
+amdgpu_dm_connector_atomic_create_state(struct drm_connector *connector);
 
 struct drm_connector_state *
 amdgpu_dm_connector_atomic_duplicate_state(struct drm_connector *connector);
 
 int amdgpu_dm_connector_atomic_set_property(struct drm_connector *connector,
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
index a5b15bef8aa0..cb189c098ec3 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
@@ -256,11 +256,11 @@ amdgpu_dm_mst_connector_early_unregister(struct drm_connector *connector)
 EXPORT_IF_KUNIT(amdgpu_dm_mst_connector_early_unregister);
 
 static const struct drm_connector_funcs dm_dp_mst_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = dm_dp_mst_connector_destroy,
-	.reset = amdgpu_dm_connector_funcs_reset,
+	.atomic_create_state = amdgpu_dm_connector_atomic_create_state,
 	.atomic_duplicate_state = amdgpu_dm_connector_atomic_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.atomic_set_property = amdgpu_dm_connector_atomic_set_property,
 	.atomic_get_property = amdgpu_dm_connector_atomic_get_property,
 	.late_register = amdgpu_dm_mst_connector_late_register,
@@ -736,11 +736,11 @@ dm_dp_add_mst_connector(struct drm_dp_mst_topology_mgr *mgr,
 
 	/*
 	 * Initialize connector state before adding the connectror to drm and
 	 * framebuffer lists
 	 */
-	amdgpu_dm_connector_funcs_reset(connector);
+	connector->state = amdgpu_dm_connector_atomic_create_state(connector);
 
 	drm_dp_mst_get_port_malloc(port);
 
 	return connector;
 }
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c
index 6f91a992d43f..8181fcac299d 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c
@@ -223,11 +223,11 @@ static const struct drm_encoder_helper_funcs amdgpu_dm_wb_encoder_helper_funcs =
 };
 
 static const struct drm_connector_funcs amdgpu_dm_wb_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
-	.reset = amdgpu_dm_connector_funcs_reset,
+	.atomic_create_state = amdgpu_dm_connector_atomic_create_state,
 	.atomic_duplicate_state = amdgpu_dm_connector_atomic_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 static const struct drm_connector_helper_funcs amdgpu_dm_wb_conn_helper_funcs = {
@@ -259,11 +259,19 @@ int amdgpu_dm_wb_connector_init(struct amdgpu_display_manager *dm,
 		return res;
 	/*
 	 * Some of the properties below require access to state, like bpc.
 	 * Allocate some default initial connector state with our reset helper.
 	 */
-	if (wbcon->base.base.funcs->reset)
-		wbcon->base.base.funcs->reset(&wbcon->base.base);
+	if (!wbcon->base.base.state &&
+	    wbcon->base.base.funcs->atomic_create_state) {
+		struct drm_connector_state *conn_state;
+
+		conn_state = amdgpu_dm_connector_atomic_create_state(&wbcon->base.base);
+		if (IS_ERR(conn_state))
+			return PTR_ERR(conn_state);
+
+		wbcon->base.base.state = conn_state;
+	}
 
 	return 0;
 }
 EXPORT_IF_KUNIT(amdgpu_dm_wb_connector_init);
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_connector_test.c b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_connector_test.c
index 8117aaf41f22..ebf8155326cb 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_connector_test.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_connector_test.c
@@ -1466,23 +1466,23 @@ static void dm_test_decide_crtc_timing_no_crtc_clock(struct kunit *test)
 
 	KUNIT_EXPECT_EQ(test, drm_mode.crtc_clock, 0);
 	KUNIT_EXPECT_EQ(test, drm_mode.crtc_hdisplay, 0);
 }
 
-/* Tests for amdgpu_dm_connector_funcs_reset() */
+/* Tests for amdgpu_dm_connector_atomic_create_state() */
 
 static const struct drm_connector_funcs dm_test_connector_funcs = {
-	.reset = amdgpu_dm_connector_funcs_reset,
+	.atomic_create_state = amdgpu_dm_connector_atomic_create_state,
 	.atomic_duplicate_state = amdgpu_dm_connector_atomic_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 /**
- * dm_test_funcs_reset_sets_defaults - Test funcs_reset sets defaults
+ * dm_test_atomic_create_sets_defaults - Test funcs_reset sets defaults
  * @test: The KUnit test context
  */
-static void dm_test_funcs_reset_sets_defaults(struct kunit *test)
+static void dm_test_atomic_create_sets_defaults(struct kunit *test)
 {
 	struct device *dev;
 	struct drm_device *drm;
 	struct drm_connector *connector;
 	struct dm_connector_state *dm_state;
@@ -1499,13 +1499,13 @@ static void dm_test_funcs_reset_sets_defaults(struct kunit *test)
 	KUNIT_ASSERT_NOT_NULL(test, connector);
 
 	drmm_connector_init(drm, connector, &dm_test_connector_funcs,
 			    DRM_MODE_CONNECTOR_DisplayPort, NULL);
 
-	amdgpu_dm_connector_funcs_reset(connector);
+	connector->state = amdgpu_dm_connector_atomic_create_state(connector);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, connector->state);
 
-	KUNIT_ASSERT_NOT_NULL(test, connector->state);
 	dm_state = to_dm_connector_state(connector->state);
 	KUNIT_EXPECT_EQ(test, (int)dm_state->scaling, (int)RMX_OFF);
 	KUNIT_EXPECT_FALSE(test, dm_state->underscan_enable);
 	KUNIT_EXPECT_EQ(test, (int)dm_state->underscan_hborder, 0);
 	KUNIT_EXPECT_EQ(test, (int)dm_state->underscan_vborder, 0);
@@ -1513,14 +1513,14 @@ static void dm_test_funcs_reset_sets_defaults(struct kunit *test)
 	KUNIT_EXPECT_EQ(test, dm_state->vcpi_slots, 0);
 	KUNIT_EXPECT_EQ(test, (int)dm_state->pbn, 0);
 }
 
 /**
- * dm_test_funcs_reset_edp_abm_level - Test funcs_reset eDP sets ABM
+ * dm_test_atomic_create_edp_abm_level - Test funcs_reset eDP sets ABM
  * @test: The KUnit test context
  */
-static void dm_test_funcs_reset_edp_abm_level(struct kunit *test)
+static void dm_test_atomic_create_edp_abm_level(struct kunit *test)
 {
 	struct device *dev;
 	struct drm_device *drm;
 	struct drm_connector *connector;
 	struct dm_connector_state *dm_state;
@@ -1540,25 +1540,26 @@ static void dm_test_funcs_reset_edp_abm_level(struct kunit *test)
 	drmm_connector_init(drm, connector, &dm_test_connector_funcs,
 			    DRM_MODE_CONNECTOR_eDP, NULL);
 
 	/* Test with abm_level > 0 */
 	amdgpu_dm_set_abm_level_param(3);
-	amdgpu_dm_connector_funcs_reset(connector);
 
-	KUNIT_ASSERT_NOT_NULL(test, connector->state);
+	connector->state = amdgpu_dm_connector_atomic_create_state(connector);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, connector->state);
+
 	dm_state = to_dm_connector_state(connector->state);
 	KUNIT_EXPECT_EQ(test, (int)dm_state->abm_level, 3);
 
 	amdgpu_dm_set_abm_level_param(saved_abm_level);
 }
 
 /**
- * dm_test_funcs_reset_edp_abm_disabled - Test funcs_reset eDP ABM
+ * dm_test_atomic_create_edp_abm_disabled - Test funcs_reset eDP ABM
  * disabled
  * @test: The KUnit test context
  */
-static void dm_test_funcs_reset_edp_abm_disabled(struct kunit *test)
+static void dm_test_atomic_create_edp_abm_disabled(struct kunit *test)
 {
 	struct device *dev;
 	struct drm_device *drm;
 	struct drm_connector *connector;
 	struct dm_connector_state *dm_state;
@@ -1578,13 +1579,14 @@ static void dm_test_funcs_reset_edp_abm_disabled(struct kunit *test)
 	drmm_connector_init(drm, connector, &dm_test_connector_funcs,
 			    DRM_MODE_CONNECTOR_eDP, NULL);
 
 	/* Test with abm_level <= 0 → immediate disable */
 	amdgpu_dm_set_abm_level_param(-1);
-	amdgpu_dm_connector_funcs_reset(connector);
 
-	KUNIT_ASSERT_NOT_NULL(test, connector->state);
+	connector->state = amdgpu_dm_connector_atomic_create_state(connector);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, connector->state);
+
 	dm_state = to_dm_connector_state(connector->state);
 	KUNIT_EXPECT_EQ(test, (int)dm_state->abm_level,
 			(int)ABM_LEVEL_IMMEDIATE_DISABLE);
 
 	amdgpu_dm_set_abm_level_param(saved_abm_level);
@@ -1618,12 +1620,12 @@ static void dm_test_atomic_dup_state_copies_fields(struct kunit *test)
 	KUNIT_ASSERT_NOT_NULL(test, connector);
 
 	drmm_connector_init(drm, connector, &dm_test_connector_funcs,
 			    DRM_MODE_CONNECTOR_HDMIA, NULL);
 
-	amdgpu_dm_connector_funcs_reset(connector);
-	KUNIT_ASSERT_NOT_NULL(test, connector->state);
+	connector->state = amdgpu_dm_connector_atomic_create_state(connector);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, connector->state);
 
 	/* Modify original state fields */
 	dm_state = to_dm_connector_state(connector->state);
 	dm_state->scaling = RMX_CENTER;
 	dm_state->underscan_enable = true;
@@ -4884,11 +4886,11 @@ static struct dm_test_destroy_ctx *dm_test_destroy_ctx_alloc(struct kunit *test)
  * drm_connector_init() requires funcs->destroy to be set, so a dedicated funcs
  * table wires it to amdgpu_dm_connector_destroy() (the test invokes it
  * directly; the connector is removed from the device before teardown).
  */
 static const struct drm_connector_funcs dm_test_destroy_funcs = {
-	.reset = amdgpu_dm_connector_funcs_reset,
+	.atomic_create_state = amdgpu_dm_connector_atomic_create_state,
 	.atomic_duplicate_state = amdgpu_dm_connector_atomic_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.destroy = amdgpu_dm_connector_destroy,
 };
 
@@ -6251,17 +6253,21 @@ static void dm_test_restore_state_no_connector_state(struct kunit *test)
  */
 static void dm_test_restore_state_no_encoder(struct kunit *test)
 {
 	struct drm_device *drm = dm_test_alloc_drm(test);
 	struct amdgpu_dm_connector *aconnector;
+	struct drm_connector_state *conn_state;
 
 	aconnector = dm_test_add_connector(test, drm,
 					   DRM_MODE_CONNECTOR_HDMIA);
 	aconnector->dc_sink = kunit_kzalloc(test, 1, GFP_KERNEL);
 	KUNIT_ASSERT_NOT_NULL(test, aconnector->dc_sink);
-	aconnector->base.funcs->reset(&aconnector->base);
-	KUNIT_ASSERT_NOT_NULL(test, aconnector->base.state);
+
+	conn_state = aconnector->base.funcs->atomic_create_state(&aconnector->base);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state);
+
+	aconnector->base.state = conn_state;
 	/* connector->encoder left NULL. */
 
 	dm_restore_drm_connector_state(drm, &aconnector->base);
 
 	KUNIT_EXPECT_NULL(test, aconnector->base.encoder);
@@ -6275,20 +6281,25 @@ static void dm_test_restore_state_no_encoder(struct kunit *test)
  * dc stream, so the function returns before comparing sinks.
  */
 static void dm_test_restore_state_no_stream(struct kunit *test)
 {
 	struct drm_device *drm = dm_test_alloc_drm(test);
+	struct drm_connector_state *conn_state;
 	struct amdgpu_dm_connector *aconnector;
 	struct dm_crtc_state *acrtc_state;
 	struct drm_encoder *enc;
 	struct drm_crtc *crtc;
 
 	aconnector = dm_test_add_connector(test, drm,
 					   DRM_MODE_CONNECTOR_HDMIA);
 	aconnector->dc_sink = kunit_kzalloc(test, 1, GFP_KERNEL);
 	KUNIT_ASSERT_NOT_NULL(test, aconnector->dc_sink);
-	aconnector->base.funcs->reset(&aconnector->base);
+
+	conn_state = aconnector->base.funcs->atomic_create_state(&aconnector->base);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state);
+
+	aconnector->base.state = conn_state;
 
 	enc = kunit_kzalloc(test, sizeof(*enc), GFP_KERNEL);
 	KUNIT_ASSERT_NOT_NULL(test, enc);
 	crtc = kunit_kzalloc(test, sizeof(*crtc), GFP_KERNEL);
 	KUNIT_ASSERT_NOT_NULL(test, crtc);
@@ -6313,21 +6324,26 @@ static void dm_test_restore_state_no_stream(struct kunit *test)
  * nothing to restore, so the forced atomic commit is not issued.
  */
 static void dm_test_restore_state_same_sink(struct kunit *test)
 {
 	struct drm_device *drm = dm_test_alloc_drm(test);
+	struct drm_connector_state *conn_state;
 	struct amdgpu_dm_connector *aconnector;
 	struct dm_crtc_state *acrtc_state;
 	struct dc_stream_state *stream;
 	struct drm_encoder *enc;
 	struct drm_crtc *crtc;
 
 	aconnector = dm_test_add_connector(test, drm,
 					   DRM_MODE_CONNECTOR_HDMIA);
 	aconnector->dc_sink = kunit_kzalloc(test, 1, GFP_KERNEL);
 	KUNIT_ASSERT_NOT_NULL(test, aconnector->dc_sink);
-	aconnector->base.funcs->reset(&aconnector->base);
+
+	conn_state = aconnector->base.funcs->atomic_create_state(&aconnector->base);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state);
+
+	aconnector->base.state = conn_state;
 
 	enc = kunit_kzalloc(test, sizeof(*enc), GFP_KERNEL);
 	KUNIT_ASSERT_NOT_NULL(test, enc);
 	crtc = kunit_kzalloc(test, sizeof(*crtc), GFP_KERNEL);
 	KUNIT_ASSERT_NOT_NULL(test, crtc);
@@ -7030,10 +7046,11 @@ static void dm_test_mode_valid_no_dc_sink(struct kunit *test)
  */
 static void dm_test_mode_valid_force_on_no_stream(struct kunit *test)
 {
 	struct dm_test_cvs_ctx *ctx =
 		dm_test_cvs_ctx_alloc(test, DRM_MODE_CONNECTOR_DisplayPort);
+	struct drm_connector_state *conn_state;
 	struct dc_sink *em_sink;
 
 	em_sink = kunit_kzalloc(test, sizeof(*em_sink), GFP_KERNEL);
 	KUNIT_ASSERT_NOT_NULL(test, em_sink);
 
@@ -7042,12 +7059,14 @@ static void dm_test_mode_valid_force_on_no_stream(struct kunit *test)
 	ctx->aconnector->base.force = DRM_FORCE_ON;
 
 	/* drm_connector_cleanup() kfree()s connector->state, so it must not
 	 * point at KUnit-managed memory.
 	 */
-	amdgpu_dm_connector_funcs_reset(&ctx->aconnector->base);
-	KUNIT_ASSERT_NOT_NULL(test, ctx->aconnector->base.state);
+	conn_state = amdgpu_dm_connector_atomic_create_state(&ctx->aconnector->base);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state);
+
+	ctx->aconnector->base.state = conn_state;
 	ctx->aconnector->base.state->max_requested_bpc = 4;
 
 	KUNIT_EXPECT_EQ(test,
 			amdgpu_dm_connector_mode_valid(&ctx->aconnector->base,
 						       ctx->mode),
@@ -7557,10 +7576,11 @@ static void dm_test_update_after_detect_disconnect(struct kunit *test)
 {
 	struct dm_test_uad_ctx *ctx =
 		dm_test_uad_ctx_alloc(test, DRM_MODE_CONNECTOR_HDMIA);
 	struct dc_sink *old_sink = dm_test_uad_owned_sink();
 	struct dc_crtc_timing *timing = kzalloc_obj(*timing, GFP_KERNEL);
+	struct drm_connector_state *conn_state;
 
 	KUNIT_ASSERT_NOT_NULL(test, old_sink);
 	KUNIT_ASSERT_NOT_NULL(test, timing);
 
 	mutex_init(&ctx->adev->dm.audio_lock);
@@ -7568,12 +7588,14 @@ static void dm_test_update_after_detect_disconnect(struct kunit *test)
 	ctx->aconnector->timing_requested = timing;
 	ctx->aconnector->num_modes = 3;
 	ctx->aconnector->audio_inst = 5;
 	ctx->link->local_sink = NULL;
 
-	amdgpu_dm_connector_funcs_reset(&ctx->aconnector->base);
-	KUNIT_ASSERT_NOT_NULL(test, ctx->aconnector->base.state);
+	conn_state = amdgpu_dm_connector_atomic_create_state(&ctx->aconnector->base);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state);
+
+	ctx->aconnector->base.state = conn_state;
 	ctx->aconnector->base.state->content_protection =
 		DRM_MODE_CONTENT_PROTECTION_ENABLED;
 
 	amdgpu_dm_update_connector_after_detect(ctx->aconnector);
 
@@ -9197,10 +9219,11 @@ struct dm_test_fs_caps_ctx {
  * parser to succeed install one.
  */
 static struct dm_test_fs_caps_ctx *
 dm_test_fs_caps_ctx_alloc(struct kunit *test, enum signal_type sink_signal)
 {
+	struct drm_connector_state *conn_state;
 	struct dm_test_fs_caps_ctx *ctx;
 	struct dc_context *dc_ctx;
 	struct device *dev;
 	struct dc *dc;
 
@@ -9222,12 +9245,15 @@ dm_test_fs_caps_ctx_alloc(struct kunit *test, enum signal_type sink_signal)
 	KUNIT_ASSERT_NOT_NULL(test, ctx->aconnector);
 	KUNIT_ASSERT_EQ(test,
 			drmm_connector_init(ctx->drm, &ctx->aconnector->base,
 					    &dm_test_connector_funcs,
 					    DRM_MODE_CONNECTOR_DisplayPort, NULL), 0);
-	amdgpu_dm_connector_funcs_reset(&ctx->aconnector->base);
-	KUNIT_ASSERT_NOT_NULL(test, ctx->aconnector->base.state);
+
+	conn_state = amdgpu_dm_connector_atomic_create_state(&ctx->aconnector->base);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state);
+
+	ctx->aconnector->base.state = conn_state;
 	KUNIT_ASSERT_EQ(test,
 			drm_connector_attach_vrr_capable_property(&ctx->aconnector->base), 0);
 
 	dc_ctx = kunit_kzalloc(test, sizeof(*dc_ctx), GFP_KERNEL);
 	KUNIT_ASSERT_NOT_NULL(test, dc_ctx);
@@ -9628,11 +9654,11 @@ dm_test_force_dup_state_fail(struct drm_connector *connector)
 {
 	return NULL;
 }
 
 static const struct drm_connector_funcs dm_test_force_fail_funcs = {
-	.reset = amdgpu_dm_connector_funcs_reset,
+	.atomic_create_state = amdgpu_dm_connector_atomic_create_state,
 	.atomic_duplicate_state = dm_test_force_dup_state_fail,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 };
 
 /* The atomic modeset check dereferences the helper funcs unconditionally. */
@@ -9845,14 +9871,14 @@ static struct kunit_case amdgpu_dm_connector_tests[] = {
 	/* decide_crtc_timing_for_drm_display_mode */
 	KUNIT_CASE(dm_test_decide_crtc_timing_scale_enabled),
 	KUNIT_CASE(dm_test_decide_crtc_timing_matching_mode),
 	KUNIT_CASE(dm_test_decide_crtc_timing_no_copy),
 	KUNIT_CASE(dm_test_decide_crtc_timing_no_crtc_clock),
-	/* amdgpu_dm_connector_funcs_reset */
-	KUNIT_CASE(dm_test_funcs_reset_sets_defaults),
-	KUNIT_CASE(dm_test_funcs_reset_edp_abm_level),
-	KUNIT_CASE(dm_test_funcs_reset_edp_abm_disabled),
+	/* amdgpu_dm_connector_atomic_create_state */
+	KUNIT_CASE(dm_test_atomic_create_sets_defaults),
+	KUNIT_CASE(dm_test_atomic_create_edp_abm_level),
+	KUNIT_CASE(dm_test_atomic_create_edp_abm_disabled),
 	/* amdgpu_dm_connector_atomic_duplicate_state */
 	KUNIT_CASE(dm_test_atomic_dup_state_copies_fields),
 	/* amdgpu_dm_fill_hdr_info_packet */
 	KUNIT_CASE(dm_test_fill_hdr_null_metadata),
 	KUNIT_CASE(dm_test_fill_hdr_zeroes_output),

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 67/75] drm/malidp: Convert to atomic_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (66 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Liviu Dudau

The malidp writeback connector reset implementation creates a custom
state subclass, but only initializes a pristine state without resetting
any hardware. This is equivalent to what atomic_create_state expects.
Convert to it.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Liviu Dudau <liviu.dudau@arm.com>
---
 drivers/gpu/drm/arm/malidp_mw.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/arm/malidp_mw.c b/drivers/gpu/drm/arm/malidp_mw.c
index f8be65119e3b..edd924ba722d 100644
--- a/drivers/gpu/drm/arm/malidp_mw.c
+++ b/drivers/gpu/drm/arm/malidp_mw.c
@@ -62,22 +62,22 @@ malidp_mw_connector_mode_valid(struct drm_connector *connector,
 static const struct drm_connector_helper_funcs malidp_mw_connector_helper_funcs = {
 	.get_modes = malidp_mw_connector_get_modes,
 	.mode_valid = malidp_mw_connector_mode_valid,
 };
 
-static void malidp_mw_connector_reset(struct drm_connector *connector)
+static struct drm_connector_state *
+malidp_mw_connector_create_state(struct drm_connector *connector)
 {
-	struct malidp_mw_connector_state *mw_state = kzalloc_obj(*mw_state);
+	struct malidp_mw_connector_state *mw_state;
 
-	if (connector->state)
-		__drm_atomic_helper_connector_destroy_state(connector->state);
+	mw_state = kzalloc_obj(*mw_state);
+	if (!mw_state)
+		return ERR_PTR(-ENOMEM);
 
-	kfree(connector->state);
-	connector->state = NULL;
+	__drm_atomic_helper_connector_state_init(&mw_state->base, connector);
 
-	if (mw_state)
-		__drm_atomic_helper_connector_reset(connector, &mw_state->base);
+	return &mw_state->base;
 }
 
 static enum drm_connector_status
 malidp_mw_connector_detect(struct drm_connector *connector, bool force)
 {
@@ -109,11 +109,11 @@ malidp_mw_connector_duplicate_state(struct drm_connector *connector)
 
 	return &mw_state->base;
 }
 
 static const struct drm_connector_funcs malidp_mw_connector_funcs = {
-	.reset = malidp_mw_connector_reset,
+	.atomic_create_state = malidp_mw_connector_create_state,
 	.detect = malidp_mw_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = malidp_mw_connector_destroy,
 	.atomic_duplicate_state = malidp_mw_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 68/75] drm/ast: Convert to atomic_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (67 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Dave Airlie, Jocelyn Falempe

The ast DisplayPort connector reset implementation creates a custom
state subclass, but only initializes a pristine state without resetting
any hardware. This is equivalent to what atomic_create_state expects.
Convert to it.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Dave Airlie <airlied@redhat.com>
Cc: Jocelyn Falempe <jfalempe@redhat.com>
---
 drivers/gpu/drm/ast/ast_dp.c | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/ast/ast_dp.c b/drivers/gpu/drm/ast/ast_dp.c
index f22c0c215a21..7708169d0254 100644
--- a/drivers/gpu/drm/ast/ast_dp.c
+++ b/drivers/gpu/drm/ast/ast_dp.c
@@ -467,21 +467,22 @@ static int ast_astdp_connector_helper_detect_ctx(struct drm_connector *connector
 static const struct drm_connector_helper_funcs ast_astdp_connector_helper_funcs = {
 	.get_modes = ast_astdp_connector_helper_get_modes,
 	.detect_ctx = ast_astdp_connector_helper_detect_ctx,
 };
 
-static void ast_astdp_connector_reset(struct drm_connector *connector)
+static struct drm_connector_state *ast_astdp_connector_create_state(struct drm_connector *connector)
 {
-	struct ast_astdp_connector_state *astdp_state = kzalloc_obj(*astdp_state);
+	struct ast_astdp_connector_state *astdp_state;
 
-	if (connector->state)
-		connector->funcs->atomic_destroy_state(connector, connector->state);
+	astdp_state = kzalloc_obj(*astdp_state);
+	if (!astdp_state)
+		return ERR_PTR(-ENOMEM);
 
-	if (astdp_state)
-		__drm_atomic_helper_connector_reset(connector, &astdp_state->base);
-	else
-		__drm_atomic_helper_connector_reset(connector, NULL);
+	__drm_atomic_helper_connector_state_init(&astdp_state->base,
+						 connector);
+
+	return &astdp_state->base;
 }
 
 static struct drm_connector_state *
 ast_astdp_connector_atomic_duplicate_state(struct drm_connector *connector)
 {
@@ -511,11 +512,11 @@ static void ast_astdp_connector_atomic_destroy_state(struct drm_connector *conne
 	__drm_atomic_helper_connector_destroy_state(&astdp_state->base);
 	kfree(astdp_state);
 }
 
 static const struct drm_connector_funcs ast_astdp_connector_funcs = {
-	.reset = ast_astdp_connector_reset,
+	.atomic_create_state = ast_astdp_connector_create_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.atomic_duplicate_state = ast_astdp_connector_atomic_duplicate_state,
 	.atomic_destroy_state = ast_astdp_connector_atomic_destroy_state,
 };

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 69/75] drm/i915: Convert to atomic_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (68 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Jani Nikula, Joonas Lahtinen,
	Rodrigo Vivi, Tvrtko Ursulin, intel-gfx, intel-xe

The i915 connector initialization uses
__drm_atomic_helper_connector_reset() to set up the initial state
during connector allocation. However, it only needs to initialize
the state, not reset it.

Switch to __drm_atomic_helper_connector_state_init() and assign
connector->state explicitly, matching what atomic_create_state
expects.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Tvrtko Ursulin <tursulin@ursulin.net>
Cc: intel-gfx@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
---
 drivers/gpu/drm/i915/display/intel_connector.c | 6 ++++--
 drivers/gpu/drm/i915/display/intel_sdvo.c      | 6 ++++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_connector.c b/drivers/gpu/drm/i915/display/intel_connector.c
index 7ef9338d67ab..ed38959b466d 100644
--- a/drivers/gpu/drm/i915/display/intel_connector.c
+++ b/drivers/gpu/drm/i915/display/intel_connector.c
@@ -88,12 +88,14 @@ static int intel_connector_init(struct intel_connector *connector)
 	 */
 	conn_state = kzalloc_obj(*conn_state);
 	if (!conn_state)
 		return -ENOMEM;
 
-	__drm_atomic_helper_connector_reset(&connector->base,
-					    &conn_state->base);
+	__drm_atomic_helper_connector_state_init(&conn_state->base,
+						 &connector->base);
+
+	connector->base.state = &conn_state->base;
 
 	intel_panel_init_alloc(connector);
 
 	INIT_WORK(&connector->modeset_retry_work,
 		  intel_connector_modeset_retry_work_fn);
diff --git a/drivers/gpu/drm/i915/display/intel_sdvo.c b/drivers/gpu/drm/i915/display/intel_sdvo.c
index 3075ef04df56..7b97f531acbf 100644
--- a/drivers/gpu/drm/i915/display/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/display/intel_sdvo.c
@@ -2788,12 +2788,14 @@ static struct intel_sdvo_connector *intel_sdvo_connector_alloc(void)
 	if (!conn_state) {
 		kfree(sdvo_connector);
 		return NULL;
 	}
 
-	__drm_atomic_helper_connector_reset(&sdvo_connector->base.base,
-					    &conn_state->base.base);
+	__drm_atomic_helper_connector_state_init(&conn_state->base.base,
+						 &sdvo_connector->base.base);
+
+	sdvo_connector->base.base.state = &conn_state->base.base;
 
 	intel_panel_init_alloc(&sdvo_connector->base);
 
 	return sdvo_connector;
 }

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 70/75] drm/nouveau: Convert to atomic_create_state
  2026-10-14 17:26 ` Maxime Ripard
@ 2026-10-14 17:27   ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Danilo Krummrich, nouveau

The nouveau connector reset implementation creates a custom state
subclass, but only initializes a pristine state and sets
driver-specific defaults without resetting any hardware. This is
equivalent to what atomic_create_state expects. Convert to it.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Danilo Krummrich <dakr@kernel.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: nouveau@lists.freedesktop.org
---
 drivers/gpu/drm/nouveau/dispnv50/disp.c     |  9 ++++++---
 drivers/gpu/drm/nouveau/nouveau_connector.c | 25 ++++++++++++++-----------
 drivers/gpu/drm/nouveau/nouveau_connector.h |  3 ++-
 3 files changed, 22 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c
index e91130f93db6..39a23d0e9be5 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
@@ -1246,11 +1246,11 @@ nv50_mstc_destroy(struct drm_connector *connector)
 	kfree(mstc);
 }
 
 static const struct drm_connector_funcs
 nv50_mstc = {
-	.reset = nouveau_conn_reset,
+	.atomic_create_state = nouveau_conn_atomic_create_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = nv50_mstc_destroy,
 	.atomic_duplicate_state = nouveau_conn_atomic_duplicate_state,
 	.atomic_destroy_state = nouveau_conn_atomic_destroy_state,
 	.atomic_set_property = nouveau_conn_atomic_set_property,
@@ -1279,12 +1279,15 @@ nv50_mstc_new(struct nv50_mstm *mstm, struct drm_dp_mst_port *port,
 		return ret;
 	}
 
 	drm_connector_helper_add(&mstc->connector, &nv50_mstc_help);
 
-	mstc->connector.funcs->reset(&mstc->connector);
-	nouveau_conn_attach_properties(&mstc->connector);
+	mstc->connector.state = mstc->connector.funcs->atomic_create_state(&mstc->connector);
+	if (IS_ERR(mstc->connector.state)) {
+		drm_connector_cleanup(&mstc->connector);
+		return PTR_ERR(mstc->connector.state);
+	}
 
 	drm_for_each_crtc(crtc, dev) {
 		if (!(mstm->outp->dcb->heads & drm_crtc_mask(crtc)))
 			continue;
 
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
index cc3caf8de64b..59c8091c6796 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -240,25 +240,21 @@ nouveau_conn_atomic_duplicate_state(struct drm_connector *connector)
 	asyc->procamp = armc->procamp;
 	asyc->set.mask = 0;
 	return &asyc->state;
 }
 
-void
-nouveau_conn_reset(struct drm_connector *connector)
+struct drm_connector_state *
+nouveau_conn_atomic_create_state(struct drm_connector *connector)
 {
 	struct nouveau_connector *nv_connector = nouveau_connector(connector);
 	struct nouveau_conn_atom *asyc;
 
 	if (drm_drv_uses_atomic_modeset(connector->dev)) {
 		if (WARN_ON(!(asyc = kzalloc_obj(*asyc))))
-			return;
+			return ERR_PTR(-ENOMEM);
 
-		if (connector->state)
-			nouveau_conn_atomic_destroy_state(connector,
-							  connector->state);
-
-		__drm_atomic_helper_connector_reset(connector, &asyc->state);
+		__drm_atomic_helper_connector_state_init(&asyc->state, connector);
 	} else {
 		asyc = &nv_connector->properties_state;
 	}
 
 	asyc->dither.mode = DITHERING_MODE_AUTO;
@@ -276,10 +272,12 @@ nouveau_conn_reset(struct drm_connector *connector)
 			break;
 		default:
 			break;
 		}
 	}
+
+	return &asyc->state;
 }
 
 void
 nouveau_conn_attach_properties(struct drm_connector *connector)
 {
@@ -1228,11 +1226,11 @@ nouveau_connector_helper_funcs = {
 };
 
 static const struct drm_connector_funcs
 nouveau_connector_funcs = {
 	.dpms = drm_helper_connector_dpms,
-	.reset = nouveau_conn_reset,
+	.atomic_create_state = nouveau_conn_atomic_create_state,
 	.detect = nouveau_connector_detect,
 	.force = nouveau_connector_force,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.set_property = nouveau_connector_set_property,
 	.destroy = nouveau_connector_destroy,
@@ -1245,11 +1243,11 @@ nouveau_connector_funcs = {
 };
 
 static const struct drm_connector_funcs
 nouveau_connector_funcs_lvds = {
 	.dpms = drm_helper_connector_dpms,
-	.reset = nouveau_conn_reset,
+	.atomic_create_state = nouveau_conn_atomic_create_state,
 	.detect = nouveau_connector_detect_lvds,
 	.force = nouveau_connector_force,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.set_property = nouveau_connector_set_property,
 	.destroy = nouveau_connector_destroy,
@@ -1519,11 +1517,16 @@ nouveau_connector_create(struct drm_device *dev, int index)
 				goto drm_conn_err;
 			}
 		}
 	}
 
-	connector->funcs->reset(connector);
+	connector->state = connector->funcs->atomic_create_state(connector);
+	if (IS_ERR(connector->state)) {
+		ret = PTR_ERR(connector->state);
+		goto drm_conn_err;
+	}
+
 	nouveau_conn_attach_properties(connector);
 
 	/* Default scaling mode */
 	switch (nv_connector->type) {
 	case DCB_CONNECTOR_LVDS:
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.h b/drivers/gpu/drm/nouveau/nouveau_connector.h
index eb292d2ba4bc..02f843648eb8 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.h
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.h
@@ -214,11 +214,12 @@ extern int nouveau_tv_disable;
 extern int nouveau_ignorelid;
 extern int nouveau_duallink;
 extern int nouveau_hdmimhz;
 
 void nouveau_conn_attach_properties(struct drm_connector *);
-void nouveau_conn_reset(struct drm_connector *);
+struct drm_connector_state *
+nouveau_conn_atomic_create_state(struct drm_connector *);
 struct drm_connector_state *
 nouveau_conn_atomic_duplicate_state(struct drm_connector *);
 void nouveau_conn_atomic_destroy_state(struct drm_connector *,
 				       struct drm_connector_state *);
 int nouveau_conn_atomic_set_property(struct drm_connector *,

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 70/75] drm/nouveau: Convert to atomic_create_state
@ 2026-10-14 17:27   ` Maxime Ripard
  0 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Danilo Krummrich, Lyude Paul, nouveau

The nouveau connector reset implementation creates a custom state
subclass, but only initializes a pristine state and sets
driver-specific defaults without resetting any hardware. This is
equivalent to what atomic_create_state expects. Convert to it.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Danilo Krummrich <dakr@kernel.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: nouveau@lists.freedesktop.org
---
 drivers/gpu/drm/nouveau/dispnv50/disp.c     |  9 ++++++---
 drivers/gpu/drm/nouveau/nouveau_connector.c | 25 ++++++++++++++-----------
 drivers/gpu/drm/nouveau/nouveau_connector.h |  3 ++-
 3 files changed, 22 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c
index e91130f93db6..39a23d0e9be5 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
@@ -1246,11 +1246,11 @@ nv50_mstc_destroy(struct drm_connector *connector)
 	kfree(mstc);
 }
 
 static const struct drm_connector_funcs
 nv50_mstc = {
-	.reset = nouveau_conn_reset,
+	.atomic_create_state = nouveau_conn_atomic_create_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = nv50_mstc_destroy,
 	.atomic_duplicate_state = nouveau_conn_atomic_duplicate_state,
 	.atomic_destroy_state = nouveau_conn_atomic_destroy_state,
 	.atomic_set_property = nouveau_conn_atomic_set_property,
@@ -1279,12 +1279,15 @@ nv50_mstc_new(struct nv50_mstm *mstm, struct drm_dp_mst_port *port,
 		return ret;
 	}
 
 	drm_connector_helper_add(&mstc->connector, &nv50_mstc_help);
 
-	mstc->connector.funcs->reset(&mstc->connector);
-	nouveau_conn_attach_properties(&mstc->connector);
+	mstc->connector.state = mstc->connector.funcs->atomic_create_state(&mstc->connector);
+	if (IS_ERR(mstc->connector.state)) {
+		drm_connector_cleanup(&mstc->connector);
+		return PTR_ERR(mstc->connector.state);
+	}
 
 	drm_for_each_crtc(crtc, dev) {
 		if (!(mstm->outp->dcb->heads & drm_crtc_mask(crtc)))
 			continue;
 
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
index cc3caf8de64b..59c8091c6796 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -240,25 +240,21 @@ nouveau_conn_atomic_duplicate_state(struct drm_connector *connector)
 	asyc->procamp = armc->procamp;
 	asyc->set.mask = 0;
 	return &asyc->state;
 }
 
-void
-nouveau_conn_reset(struct drm_connector *connector)
+struct drm_connector_state *
+nouveau_conn_atomic_create_state(struct drm_connector *connector)
 {
 	struct nouveau_connector *nv_connector = nouveau_connector(connector);
 	struct nouveau_conn_atom *asyc;
 
 	if (drm_drv_uses_atomic_modeset(connector->dev)) {
 		if (WARN_ON(!(asyc = kzalloc_obj(*asyc))))
-			return;
+			return ERR_PTR(-ENOMEM);
 
-		if (connector->state)
-			nouveau_conn_atomic_destroy_state(connector,
-							  connector->state);
-
-		__drm_atomic_helper_connector_reset(connector, &asyc->state);
+		__drm_atomic_helper_connector_state_init(&asyc->state, connector);
 	} else {
 		asyc = &nv_connector->properties_state;
 	}
 
 	asyc->dither.mode = DITHERING_MODE_AUTO;
@@ -276,10 +272,12 @@ nouveau_conn_reset(struct drm_connector *connector)
 			break;
 		default:
 			break;
 		}
 	}
+
+	return &asyc->state;
 }
 
 void
 nouveau_conn_attach_properties(struct drm_connector *connector)
 {
@@ -1228,11 +1226,11 @@ nouveau_connector_helper_funcs = {
 };
 
 static const struct drm_connector_funcs
 nouveau_connector_funcs = {
 	.dpms = drm_helper_connector_dpms,
-	.reset = nouveau_conn_reset,
+	.atomic_create_state = nouveau_conn_atomic_create_state,
 	.detect = nouveau_connector_detect,
 	.force = nouveau_connector_force,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.set_property = nouveau_connector_set_property,
 	.destroy = nouveau_connector_destroy,
@@ -1245,11 +1243,11 @@ nouveau_connector_funcs = {
 };
 
 static const struct drm_connector_funcs
 nouveau_connector_funcs_lvds = {
 	.dpms = drm_helper_connector_dpms,
-	.reset = nouveau_conn_reset,
+	.atomic_create_state = nouveau_conn_atomic_create_state,
 	.detect = nouveau_connector_detect_lvds,
 	.force = nouveau_connector_force,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.set_property = nouveau_connector_set_property,
 	.destroy = nouveau_connector_destroy,
@@ -1519,11 +1517,16 @@ nouveau_connector_create(struct drm_device *dev, int index)
 				goto drm_conn_err;
 			}
 		}
 	}
 
-	connector->funcs->reset(connector);
+	connector->state = connector->funcs->atomic_create_state(connector);
+	if (IS_ERR(connector->state)) {
+		ret = PTR_ERR(connector->state);
+		goto drm_conn_err;
+	}
+
 	nouveau_conn_attach_properties(connector);
 
 	/* Default scaling mode */
 	switch (nv_connector->type) {
 	case DCB_CONNECTOR_LVDS:
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.h b/drivers/gpu/drm/nouveau/nouveau_connector.h
index eb292d2ba4bc..02f843648eb8 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.h
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.h
@@ -214,11 +214,12 @@ extern int nouveau_tv_disable;
 extern int nouveau_ignorelid;
 extern int nouveau_duallink;
 extern int nouveau_hdmimhz;
 
 void nouveau_conn_attach_properties(struct drm_connector *);
-void nouveau_conn_reset(struct drm_connector *);
+struct drm_connector_state *
+nouveau_conn_atomic_create_state(struct drm_connector *);
 struct drm_connector_state *
 nouveau_conn_atomic_duplicate_state(struct drm_connector *);
 void nouveau_conn_atomic_destroy_state(struct drm_connector *,
 				       struct drm_connector_state *);
 int nouveau_conn_atomic_set_property(struct drm_connector *,

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 71/75] drm/rcar-du: Convert to atomic_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (70 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Geert Uytterhoeven, Kieran Bingham,
	Laurent Pinchart, Magnus Damm, Tomi Valkeinen, linux-renesas-soc

The rcar-du writeback connector reset implementation creates a custom
state subclass, but only initializes a pristine state without resetting
any hardware. This is equivalent to what atomic_create_state expects.
Convert to it.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Cc: Magnus Damm <magnus.damm@gmail.com>
Cc: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com>
Cc: linux-renesas-soc@vger.kernel.org
---
 drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c
index e5e6e6a156aa..9cb1af182fa0 100644
--- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c
+++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c
@@ -113,28 +113,25 @@ static void rcar_du_wb_conn_destroy_state(struct drm_connector *connector,
 {
 	__drm_atomic_helper_connector_destroy_state(state);
 	kfree(to_rcar_wb_conn_state(state));
 }
 
-static void rcar_du_wb_conn_reset(struct drm_connector *connector)
+static struct drm_connector_state *rcar_du_wb_conn_create_state(struct drm_connector *connector)
 {
 	struct rcar_du_wb_conn_state *state;
 
-	if (connector->state) {
-		rcar_du_wb_conn_destroy_state(connector, connector->state);
-		connector->state = NULL;
-	}
-
 	state = kzalloc_obj(*state);
 	if (state == NULL)
-		return;
+		return ERR_PTR(-ENOMEM);
 
-	__drm_atomic_helper_connector_reset(connector, &state->state);
+	__drm_atomic_helper_connector_state_init(&state->state, connector);
+
+	return &state->state;
 }
 
 static const struct drm_connector_funcs rcar_du_wb_conn_funcs = {
-	.reset = rcar_du_wb_conn_reset,
+	.atomic_create_state = rcar_du_wb_conn_create_state,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.atomic_duplicate_state = rcar_du_wb_conn_duplicate_state,
 	.atomic_destroy_state = rcar_du_wb_conn_destroy_state,
 };

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 72/75] drm/tegra: Convert to atomic_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (71 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Jonathan Hunter, Mikko Perttunen,
	Thierry Reding, linux-tegra

The tegra DSI and SOR connector reset implementations create custom
state subclasses, but only initialize a pristine state without resetting
any hardware. This is equivalent to what atomic_create_state expects.
Convert to it.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Jonathan Hunter <jonathanh@nvidia.com>
Cc: Mikko Perttunen <mperttunen@nvidia.com>
Cc: Thierry Reding <thierry.reding@kernel.org>
Cc: linux-tegra@vger.kernel.org
---
 drivers/gpu/drm/tegra/dsi.c | 17 ++++++++---------
 drivers/gpu/drm/tegra/sor.c | 13 +++++--------
 2 files changed, 13 insertions(+), 17 deletions(-)

diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
index 7b595310e737..e4d842119bef 100644
--- a/drivers/gpu/drm/tegra/dsi.c
+++ b/drivers/gpu/drm/tegra/dsi.c
@@ -783,23 +783,22 @@ static void tegra_dsi_soft_reset(struct tegra_dsi *dsi)
 
 	if (dsi->slave)
 		tegra_dsi_soft_reset(dsi->slave);
 }
 
-static void tegra_dsi_connector_reset(struct drm_connector *connector)
+static struct drm_connector_state *
+tegra_dsi_connector_create_state(struct drm_connector *connector)
 {
-	struct tegra_dsi_state *state = kzalloc_obj(*state);
+	struct tegra_dsi_state *state;
 
+	state = kzalloc_obj(*state);
 	if (!state)
-		return;
+		return ERR_PTR(-ENOMEM);
 
-	if (connector->state) {
-		__drm_atomic_helper_connector_destroy_state(connector->state);
-		kfree(connector->state);
-	}
+	__drm_atomic_helper_connector_state_init(&state->base, connector);
 
-	__drm_atomic_helper_connector_reset(connector, &state->base);
+	return &state->base;
 }
 
 static struct drm_connector_state *
 tegra_dsi_connector_duplicate_state(struct drm_connector *connector)
 {
@@ -815,11 +814,11 @@ tegra_dsi_connector_duplicate_state(struct drm_connector *connector)
 
 	return &copy->base;
 }
 
 static const struct drm_connector_funcs tegra_dsi_connector_funcs = {
-	.reset = tegra_dsi_connector_reset,
+	.atomic_create_state = tegra_dsi_connector_create_state,
 	.detect = tegra_output_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = tegra_output_connector_destroy,
 	.atomic_duplicate_state = tegra_dsi_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
index e384cbd0cbf7..fd60acd22ed1 100644
--- a/drivers/gpu/drm/tegra/sor.c
+++ b/drivers/gpu/drm/tegra/sor.c
@@ -1718,24 +1718,21 @@ static void tegra_sor_early_unregister(struct drm_connector *connector)
 				 connector->dev->primary);
 	kfree(sor->debugfs_files);
 	sor->debugfs_files = NULL;
 }
 
-static void tegra_sor_connector_reset(struct drm_connector *connector)
+static struct drm_connector_state *tegra_sor_connector_create_state(struct drm_connector *connector)
 {
 	struct tegra_sor_state *state;
 
 	state = kzalloc_obj(*state);
 	if (!state)
-		return;
+		return ERR_PTR(-ENOMEM);
 
-	if (connector->state) {
-		__drm_atomic_helper_connector_destroy_state(connector->state);
-		kfree(connector->state);
-	}
+	__drm_atomic_helper_connector_state_init(&state->base, connector);
 
-	__drm_atomic_helper_connector_reset(connector, &state->base);
+	return &state->base;
 }
 
 static enum drm_connector_status
 tegra_sor_connector_detect(struct drm_connector *connector, bool force)
 {
@@ -1762,11 +1759,11 @@ tegra_sor_connector_duplicate_state(struct drm_connector *connector)
 
 	return &copy->base;
 }
 
 static const struct drm_connector_funcs tegra_sor_connector_funcs = {
-	.reset = tegra_sor_connector_reset,
+	.atomic_create_state = tegra_sor_connector_create_state,
 	.detect = tegra_sor_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = tegra_output_connector_destroy,
 	.atomic_duplicate_state = tegra_sor_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 73/75] drm/vmwgfx: Convert to atomic_create_state
  2026-10-14 17:26 ` Maxime Ripard
                   ` (72 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard, Broadcom internal kernel review list,
	Zack Rusin

The vmwgfx connector reset implementation creates a custom state
subclass, but only initializes a pristine state without resetting any
hardware. This is equivalent to what atomic_create_state expects.
Convert to it.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
Cc: Zack Rusin <zack.rusin@broadcom.com>
---
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.c  | 23 ++++++++---------------
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.h  |  3 ++-
 drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c  |  2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c |  2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c |  2 +-
 5 files changed, 13 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
index 9031dccad31d..792758d92f3c 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
@@ -351,36 +351,29 @@ vmw_du_connector_duplicate_state(struct drm_connector *connector)
 	return state;
 }
 
 
 /**
- * vmw_du_connector_reset - creates a blank vmw connector state
+ * vmw_du_connector_create_state - creates a blank vmw connector state
  * @connector: DRM connector
  *
- * Resets the atomic state for @connector by freeing the state pointer (which
- * might be NULL, e.g. at driver load time) and allocating a new empty state
- * object.
+ * Allocates a new empty state object for @connector.
  */
-void vmw_du_connector_reset(struct drm_connector *connector)
+struct drm_connector_state *
+vmw_du_connector_create_state(struct drm_connector *connector)
 {
 	struct vmw_connector_state *vcs;
 
-
-	if (connector->state) {
-		__drm_atomic_helper_connector_destroy_state(connector->state);
-
-		kfree(vmw_connector_state_to_vcs(connector->state));
-	}
-
 	vcs = kzalloc_obj(*vcs);
-
 	if (!vcs) {
 		DRM_ERROR("Cannot allocate vmw_connector_state\n");
-		return;
+		return ERR_PTR(-ENOMEM);
 	}
 
-	__drm_atomic_helper_connector_reset(connector, &vcs->base);
+	__drm_atomic_helper_connector_state_init(&vcs->base, connector);
+
+	return &vcs->base;
 }
 
 
 /**
  * vmw_du_connector_destroy_state - destroy connector state
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h
index 5085d8bccf0a..283550363fac 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h
@@ -423,11 +423,12 @@ void vmw_du_crtc_atomic_begin(struct drm_crtc *crtc,
 			      struct drm_atomic_commit *state);
 struct drm_crtc_state *vmw_du_crtc_create_state(struct drm_crtc *crtc);
 struct drm_crtc_state *vmw_du_crtc_duplicate_state(struct drm_crtc *crtc);
 void vmw_du_crtc_destroy_state(struct drm_crtc *crtc,
 				struct drm_crtc_state *state);
-void vmw_du_connector_reset(struct drm_connector *connector);
+struct drm_connector_state *
+vmw_du_connector_create_state(struct drm_connector *connector);
 struct drm_connector_state *
 vmw_du_connector_duplicate_state(struct drm_connector *connector);
 
 void vmw_du_connector_destroy_state(struct drm_connector *connector,
 				    struct drm_connector_state *state);
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
index b147f5db9df5..0dea09cc29a7 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
@@ -285,11 +285,11 @@ static void vmw_ldu_connector_destroy(struct drm_connector *connector)
 static const struct drm_connector_funcs vmw_legacy_connector_funcs = {
 	.dpms = vmw_du_connector_dpms,
 	.detect = vmw_du_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = vmw_ldu_connector_destroy,
-	.reset = vmw_du_connector_reset,
+	.atomic_create_state = vmw_du_connector_create_state,
 	.atomic_duplicate_state = vmw_du_connector_duplicate_state,
 	.atomic_destroy_state = vmw_du_connector_destroy_state,
 };
 
 static const struct
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
index 89714d5c235b..39d58fc392bf 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
@@ -340,11 +340,11 @@ static void vmw_sou_connector_destroy(struct drm_connector *connector)
 static const struct drm_connector_funcs vmw_sou_connector_funcs = {
 	.dpms = vmw_du_connector_dpms,
 	.detect = vmw_du_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = vmw_sou_connector_destroy,
-	.reset = vmw_du_connector_reset,
+	.atomic_create_state = vmw_du_connector_create_state,
 	.atomic_duplicate_state = vmw_du_connector_duplicate_state,
 	.atomic_destroy_state = vmw_du_connector_destroy_state,
 };
 
 
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
index cbf55084110a..b505f8ba3e83 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
@@ -906,11 +906,11 @@ static int vmw_stdu_connector_atomic_check(struct drm_connector *conn,
 static const struct drm_connector_funcs vmw_stdu_connector_funcs = {
 	.dpms = vmw_du_connector_dpms,
 	.detect = vmw_du_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = vmw_stdu_connector_destroy,
-	.reset = vmw_du_connector_reset,
+	.atomic_create_state = vmw_du_connector_create_state,
 	.atomic_duplicate_state = vmw_du_connector_duplicate_state,
 	.atomic_destroy_state = vmw_du_connector_destroy_state,
 };
 
 

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 74/75] drm/connector: Remove __drm_atomic_helper_connector_reset()
  2026-10-14 17:26 ` Maxime Ripard
                   ` (73 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard

All drivers implementing the connector reset hook using
__drm_atomic_helper_connector_reset() have been converted to
atomic_create_state.

Remove __drm_atomic_helper_connector_reset().

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
 drivers/gpu/drm/drm_atomic_state_helper.c | 23 -----------------------
 include/drm/drm_atomic_state_helper.h     |  2 --
 include/drm/drm_connector.h               |  3 ---
 3 files changed, 28 deletions(-)

diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c
index 8c48031956fe..efe173f3eeca 100644
--- a/drivers/gpu/drm/drm_atomic_state_helper.c
+++ b/drivers/gpu/drm/drm_atomic_state_helper.c
@@ -410,33 +410,10 @@ __drm_atomic_helper_connector_state_init(struct drm_connector_state *conn_state,
 {
 	conn_state->connector = connector;
 }
 EXPORT_SYMBOL(__drm_atomic_helper_connector_state_init);
 
-/**
- * __drm_atomic_helper_connector_reset - reset state on connector
- * @connector: drm connector
- * @conn_state: connector state to assign
- *
- * Initializes the newly allocated @conn_state and assigns it to
- * the &drm_connector->state pointer of @connector, usually required when
- * initializing the drivers or when called from the &drm_connector_funcs.reset
- * hook.
- *
- * This is useful for drivers that subclass the connector state.
- */
-void
-__drm_atomic_helper_connector_reset(struct drm_connector *connector,
-				    struct drm_connector_state *conn_state)
-{
-	if (conn_state)
-		__drm_atomic_helper_connector_state_init(conn_state, connector);
-
-	connector->state = conn_state;
-}
-EXPORT_SYMBOL(__drm_atomic_helper_connector_reset);
-
 /**
  * drm_atomic_helper_connector_create_state - default &drm_connector_funcs.atomic_create_state hook for connectors
  * @connector: connector object
  *
  * Allocates and  initializes pristine @drm_connector_state.
diff --git a/include/drm/drm_atomic_state_helper.h b/include/drm/drm_atomic_state_helper.h
index 7bced7e9d860..1a822179f2ec 100644
--- a/include/drm/drm_atomic_state_helper.h
+++ b/include/drm/drm_atomic_state_helper.h
@@ -64,12 +64,10 @@ void __drm_atomic_helper_plane_destroy_state(struct drm_plane_state *state);
 void drm_atomic_helper_plane_destroy_state(struct drm_plane *plane,
 					  struct drm_plane_state *state);
 
 void __drm_atomic_helper_connector_state_init(struct drm_connector_state *conn_state,
 					       struct drm_connector *connector);
-void __drm_atomic_helper_connector_reset(struct drm_connector *connector,
-					 struct drm_connector_state *conn_state);
 struct drm_connector_state *
 drm_atomic_helper_connector_create_state(struct drm_connector *connector);
 void drm_atomic_helper_connector_tv_state_init(struct drm_connector_state *state,
 					       struct drm_connector *connector);
 int drm_atomic_helper_connector_tv_check(struct drm_connector *connector,
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index 8b52360339e0..a87cd13d0a45 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -1662,13 +1662,10 @@ struct drm_connector_funcs {
 	 * @reset:
 	 *
 	 * Reset connector hardware and software state to off. This function isn't
 	 * called by the core directly, only through drm_mode_config_reset().
 	 * It's not a helper hook only for historical reasons.
-	 *
-	 * Atomic drivers can use __drm_atomic_helper_connector_reset() to reset
-	 * atomic state using this hook.
 	 */
 	void (*reset)(struct drm_connector *connector);
 
 	/**
 	 * @detect:

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* [PATCH 75/75] drm/connector: Remove reset
  2026-10-14 17:26 ` Maxime Ripard
                   ` (74 preceding siblings ...)
  (?)
@ 2026-10-14 17:27 ` Maxime Ripard
  -1 siblings, 0 replies; 98+ messages in thread
From: Maxime Ripard @ 2026-10-14 17:27 UTC (permalink / raw)
  To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, Maxime Ripard

All the drivers that used to implement the reset hook have been
converted to use atomic_create_state instead.

Remove the reset hook from drm_connector_funcs, and the code calling
it in drm_mode_config_reset(), drmm_connector_hdmi_init() and
panel_bridge_attach().

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
 drivers/gpu/drm/drm_connector.c   | 8 --------
 drivers/gpu/drm/drm_mode_config.c | 4 +---
 drivers/gpu/drm/drm_panel.c       | 2 --
 include/drm/drm_connector.h       | 9 ---------
 4 files changed, 1 insertion(+), 22 deletions(-)

diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index 893716a9e489..d66188521881 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -660,14 +660,10 @@ int drmm_connector_hdmi_init(struct drm_device *dev,
 		state = connector->funcs->atomic_create_state(connector);
 		if (IS_ERR(state))
 			return PTR_ERR(state);
 
 		connector->state = state;
-	} else if (connector->funcs->reset) {
-		connector->funcs->reset(connector);
-		if (!connector->state)
-			return -ENOMEM;
 	}
 
 	drm_connector_attach_max_bpc_property(connector, 8, hdmi_funcs->max_bpc);
 	/* TODO: remove after conversion to new drmm_connector_hdmi_init() */
 	connector->max_bpc = hdmi_funcs->max_bpc;
@@ -768,14 +764,10 @@ int drmm_connector_hdmi_ini2(struct drm_device *dev,
 		state = connector->funcs->atomic_create_state(connector);
 		if (IS_ERR(state))
 			return PTR_ERR(state);
 
 		connector->state = state;
-	} else if (connector->funcs->reset) {
-		connector->funcs->reset(connector);
-		if (!connector->state)
-			return -ENOMEM;
 	}
 
 	drm_connector_attach_max_bpc_property(connector, 8, max_bpc);
 	connector->max_bpc = max_bpc;
 
diff --git a/drivers/gpu/drm/drm_mode_config.c b/drivers/gpu/drm/drm_mode_config.c
index 48a56f23dadb..c1e993a78702 100644
--- a/drivers/gpu/drm/drm_mode_config.c
+++ b/drivers/gpu/drm/drm_mode_config.c
@@ -313,13 +313,11 @@ void drm_mode_config_reset(struct drm_device *dev)
 		if (encoder->funcs && encoder->funcs->reset)
 			encoder->funcs->reset(encoder);
 
 	drm_connector_list_iter_begin(dev, &conn_iter);
 	drm_for_each_connector_iter(connector, &conn_iter) {
-		if (connector->funcs->reset)
-			connector->funcs->reset(connector);
-		else if (connector->funcs->atomic_create_state)
+		if (connector->funcs->atomic_create_state)
 			drm_mode_config_connector_reset_with_create_state(connector);
 	}
 	drm_connector_list_iter_end(&conn_iter);
 }
 EXPORT_SYMBOL(drm_mode_config_reset);
diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
index 55a1427c7a10..6131aaf2eb70 100644
--- a/drivers/gpu/drm/drm_panel.c
+++ b/drivers/gpu/drm/drm_panel.c
@@ -110,12 +110,10 @@ static int panel_bridge_attach(struct drm_bridge *bridge,
 			conn_state = connector->funcs->atomic_create_state(connector);
 			if (IS_ERR(conn_state))
 				return PTR_ERR(conn_state);
 
 			connector->state = conn_state;
-		} else if (connector->funcs->reset) {
-			connector->funcs->reset(connector);
 		}
 
 		drm_connector_register(connector);
 	}
 
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index a87cd13d0a45..f656ed8324d3 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -1656,19 +1656,10 @@ struct drm_connector_funcs {
 	 *
 	 * 0 on success or a negative error code on failure.
 	 */
 	int (*dpms)(struct drm_connector *connector, int mode);
 
-	/**
-	 * @reset:
-	 *
-	 * Reset connector hardware and software state to off. This function isn't
-	 * called by the core directly, only through drm_mode_config_reset().
-	 * It's not a helper hook only for historical reasons.
-	 */
-	void (*reset)(struct drm_connector *connector);
-
 	/**
 	 * @detect:
 	 *
 	 * Check to see if anything is attached to the connector. The parameter
 	 * force is set to false whilst polling, true when checking the

-- 
2.55.0


^ permalink raw reply related	[flat|nested] 98+ messages in thread

* Re: [PATCH 01/75] drm/panel: Add atomic_create_state support
  2026-10-14 17:26 ` [PATCH 01/75] drm/panel: Add atomic_create_state support Maxime Ripard
@ 2026-10-14 17:45   ` sashiko-bot
  0 siblings, 0 replies; 98+ messages in thread
From: sashiko-bot @ 2026-10-14 17:45 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: dri-devel

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] drm: missing drm_connector_cleanup() on atomic_create_state error path
--

commit 0b1142b139421992608178b6e00be629b73837b5
Author: Maxime Ripard <mripard@kernel.org>

drm/panel: Add atomic_create_state support

The panel bridge attach hook calls the connector's reset function to
initialize the connector state when the device is already registered.
Now that connectors are being migrated from the reset hook to
atomic_create_state, prefer it over reset and fall back to the reset
hook if atomic_create_state is not implemented.

> diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
> index c00529bfb706b..c9f49e18890ad 100644
> --- a/drivers/gpu/drm/drm_panel.c
> +++ b/drivers/gpu/drm/drm_panel.c
> @@ -104,8 +104,18 @@ static int panel_bridge_attach(struct drm_bridge *bridge,
>  	drm_connector_attach_encoder(connector, encoder);
>  
>  	if (bridge->dev->registered) {
> -		if (connector->funcs->reset)
> +		if (connector->funcs->atomic_create_state) {
> +			struct drm_connector_state *conn_state;
> +
> +			conn_state = connector->funcs->atomic_create_state(connector);
> +			if (IS_ERR(conn_state))
> +				return PTR_ERR(conn_state);

[Severity: High]
Does this early return leak the initialized connector resources?

Earlier in panel_bridge_attach(), drm_connector_init() is called:

	ret = drm_connector_init(bridge->dev, connector,
				 &panel_bridge_connector_funcs,
				 panel->connector_type);

This successfully initializes the connector, allocates its IDA and name string,
and adds it to the DRM device's global connector_list.

When atomic_create_state() fails and we return PTR_ERR(conn_state) early,
drm_connector_cleanup() is bypassed. Because the bridge attach failed, the
caller (drm_bridge_attach()) aborts the setup and will not call the bridge's
detach hook where drm_connector_cleanup() is typically invoked.

As a result, the connector remains in dev->mode_config.connector_list while
its enclosing struct drm_panel memory is tied to the panel driver's lifecycle.
If the panel driver unbinds and frees its memory, the DRM core might traverse
a freed list node during drm_mode_config_cleanup() or subsequent connector
iterations, potentially leading to a use-after-free crash. Additionally, the
IDA and name string allocated by drm_connector_init() are leaked.

> +
> +			connector->state = conn_state;
> +		} else if (connector->funcs->reset) {
>  			connector->funcs->reset(connector);
> +		}
> +
>  		drm_connector_register(connector);
>  	}

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org?part=1

^ permalink raw reply	[flat|nested] 98+ messages in thread

* Re: [PATCH 14/75] drm/panel: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` [PATCH 14/75] drm/panel: " Maxime Ripard
@ 2026-10-14 17:48   ` sashiko-bot
  0 siblings, 0 replies; 98+ messages in thread
From: sashiko-bot @ 2026-10-14 17:48 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: dri-devel

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] drm: Missing drm_connector_cleanup() on atomic_create_state error path
--

commit 4c22451169f59e38b227f793ca15ca81195bb746
Author: Maxime Ripard <mripard@kernel.org>

drm/panel: Switch to drm_atomic_helper_connector_create_state

This commit replaces the deprecated reset hook with the 
atomic_create_state callback in the panel bridge connector implementation.

> diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
> index c9f49e18890ad..55a1427c7a10a 100644
> --- a/drivers/gpu/drm/drm_panel.c
> +++ b/drivers/gpu/drm/drm_panel.c
> @@ -70,9 +70,9 @@ panel_bridge_connector_helper_funcs = {
>  };
>  
>  static const struct drm_connector_funcs panel_bridge_connector_funcs = {
> -	.reset = drm_atomic_helper_connector_reset,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
>  	.destroy = drm_connector_cleanup,
> +	.atomic_create_state = drm_atomic_helper_connector_create_state,

[Severity: High]
Does this change introduce a resource leak and a use-after-free in the error
path of panel_bridge_attach()?

By providing the atomic_create_state callback, panel_bridge_attach() will
now take a different branch when creating the state:

drivers/gpu/drm/drm_panel.c:panel_bridge_attach() {
    ...
	ret = drm_connector_init(bridge->dev, connector,
				 &panel_bridge_connector_funcs,
				 panel->connector_type);
    ...
		if (connector->funcs->atomic_create_state) {
			struct drm_connector_state *conn_state;

			conn_state = connector->funcs->atomic_create_state(connector);
			if (IS_ERR(conn_state))
				return PTR_ERR(conn_state);
    ...
}

If drm_atomic_helper_connector_create_state() fails, the function returns
the error directly.

Since the connector was successfully initialized by drm_connector_init()
earlier in the function, returning without calling drm_connector_cleanup()
appears to leak the connector's resources.

Could this also lead to a use-after-free when the DRM core later iterates
over dev->mode_config.connector_list containing a dangling pointer to this
uncleaned connector?

>  	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
>  };

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org?part=14

^ permalink raw reply	[flat|nested] 98+ messages in thread

* Re: [PATCH 04/75] drm/amdgpu: dm: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` [PATCH 04/75] drm/amdgpu: dm: " Maxime Ripard
@ 2026-10-14 17:52   ` sashiko-bot
  0 siblings, 0 replies; 98+ messages in thread
From: sashiko-bot @ 2026-10-14 17:52 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: dri-devel

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] drm/amdgpu: tests store ERR_PTR in connector->state leading to cleanup crash
- [Low] drm: WARN_ON triggered during test connector init due to missing atomic hooks
--

commit 4e29a193c910088812846e00f2f613afc6ebffa4
Author: Maxime Ripard <mripard@kernel.org>

drm/amdgpu: dm: Switch to drm_atomic_helper_connector_create_state

The amdgpu: dm connector implementation uses the deprecated
drm_atomic_helper_connector_reset() as its reset hook. Switch to
drm_atomic_helper_connector_create_state() instead.

> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_crc_test.c b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_crc_test.c
> index 29a513dab9cd8..e47b4dd210b8d 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_crc_test.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_crc_test.c

[ ... ]

> @@ -654,8 +654,9 @@ static void dm_test_crtc_set_crc_source_dprx_no_connector(struct kunit *test)
>  						 DRM_MODE_CONNECTOR_WRITEBACK), 0);
>  	KUNIT_ASSERT_EQ(test, kunit_add_action_or_reset(test,
>  			dm_test_crc_connector_cleanup, wb_conn), 0);
> -	drm_atomic_helper_connector_reset(wb_conn);
> -	KUNIT_ASSERT_NOT_NULL(test, wb_conn->state);
> +
> +	wb_conn->state = drm_atomic_helper_connector_create_state(wb_conn);
> +	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, wb_conn->state);

[Severity: Medium]
Can this assignment introduce a regression by causing a crash in the deferred
KUnit cleanup path if memory allocation fails?

In dm_test_crtc_set_crc_source_dprx_no_connector(), if
drm_atomic_helper_connector_create_state() fails, it returns ERR_PTR(-ENOMEM).
Because it's directly assigned to wb_conn->state, the assertion
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, wb_conn->state) will fail, aborting the
test.

This test abortion jumps to KUnit's deferred cleanup routines. The previously
registered cleanup action dm_test_crc_connector_cleanup() invokes
drm_connector_cleanup(wb_conn).

Since wb_conn->state contains ERR_PTR(-ENOMEM), which is not NULL,
drm_connector_cleanup() will consider it a valid pointer and pass it to
drm_atomic_helper_connector_destroy_state(). This will blindly dereference
the error pointer, leading to an invalid memory access.

Should the return value be validated in a local variable before being assigned
to wb_conn->state to ensure it remains NULL on failure?

> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_helpers_test.c b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_helpers_test.c
> index 51c3995de76d2..a369a3cbd4afa 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_helpers_test.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_helpers_test.c

[ ... ]

> @@ -4106,7 +4106,7 @@ static void dm_test_is_dp_sink_present_queries_link_service(struct kunit *test)
>   * device pointer, so build a real one here.
>   */
>  static const struct drm_connector_funcs dm_test_connector_funcs = {
> -	.reset = drm_atomic_helper_connector_reset,
> +	.atomic_create_state = drm_atomic_helper_connector_create_state,
>  };

[Severity: Low]
Will this missing hook introduce a regression by triggering a kernel warning
during test connector initialization?

The KUnit test allocates a DRM device with the DRIVER_ATOMIC feature flag.
When dm_test_alloc_real_connector() initializes the connector using
drmm_connector_init(), it calls into drm_connector_init_only().

Because dm_test_connector_funcs omits both the .atomic_destroy_state and
.atomic_duplicate_state hooks, this explicitly violates the core DRM check:

WARN_ON(drm_drv_uses_atomic_modeset(dev) &&
        (!funcs->atomic_destroy_state || !funcs->atomic_duplicate_state))

This causes a warning to fire unconditionally during KUnit test execution.
Should we add the required hooks to satisfy the API contract for this
test connector?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org?part=4

^ permalink raw reply	[flat|nested] 98+ messages in thread

* Re: [PATCH 31/75] drm/qxl: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` [PATCH 31/75] drm/qxl: " Maxime Ripard
@ 2026-10-14 17:53   ` sashiko-bot
  0 siblings, 0 replies; 98+ messages in thread
From: sashiko-bot @ 2026-10-14 17:53 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: virtualization, Michael S. Tsirkin, Eugenio Perez

> The qxl connector implementation uses the deprecated
> drm_atomic_helper_connector_reset() as its reset hook.
> 
> Switch to drm_atomic_helper_connector_create_state() instead.
> 
> Signed-off-by: Maxime Ripard <mripard@kernel.org>

Sashiko has reviewed this patch and found no issues. It looks great!

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org?part=31


^ permalink raw reply	[flat|nested] 98+ messages in thread

* Re: [PATCH 43/75] drm/tiny: bochs: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:27 ` [PATCH 43/75] drm/tiny: bochs: " Maxime Ripard
@ 2026-10-14 17:56   ` sashiko-bot
  0 siblings, 0 replies; 98+ messages in thread
From: sashiko-bot @ 2026-10-14 17:56 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: virtualization, Michael S. Tsirkin, Eugenio Perez

> The tiny: bochs connector implementation uses the deprecated
> drm_atomic_helper_connector_reset() as its reset hook.
> 
> Switch to drm_atomic_helper_connector_create_state() instead.
> 
> Signed-off-by: Maxime Ripard <mripard@kernel.org>

Sashiko has reviewed this patch and found no issues. It looks great!

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org?part=43


^ permalink raw reply	[flat|nested] 98+ messages in thread

* Re: [PATCH 44/75] drm/tiny: cirrus: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:27 ` [PATCH 44/75] drm/tiny: cirrus: " Maxime Ripard
@ 2026-10-14 17:57   ` sashiko-bot
  0 siblings, 0 replies; 98+ messages in thread
From: sashiko-bot @ 2026-10-14 17:57 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: virtualization, Michael S. Tsirkin, Eugenio Perez

> The tiny: cirrus connector implementation uses the deprecated
> drm_atomic_helper_connector_reset() as its reset hook.
> 
> Switch to drm_atomic_helper_connector_create_state() instead.
> 
> Signed-off-by: Maxime Ripard <mripard@kernel.org>

Sashiko has reviewed this patch and found no issues. It looks great!

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org?part=44


^ permalink raw reply	[flat|nested] 98+ messages in thread

* Re: [PATCH 56/75] drm/atomic-state-helper: Rename connector_tv_reset to state_init
  2026-10-14 17:27 ` [PATCH 56/75] drm/atomic-state-helper: Rename connector_tv_reset " Maxime Ripard
@ 2026-10-14 18:03   ` sashiko-bot
  0 siblings, 0 replies; 98+ messages in thread
From: sashiko-bot @ 2026-10-14 18:03 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: dri-devel, linux-sunxi

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] drm: Incomplete state decoupling causes NULL deref in tv_margins_state_init
--

commit 44e808ff1921e4945725ba2420217e2015fc2db5
Author: Maxime Ripard <mripard@kernel.org>

drm/atomic-state-helper: Rename connector_tv_reset to state_init

This commit renames drm_atomic_helper_connector_tv_reset to
drm_atomic_helper_connector_tv_state_init. It adds a connector state
parameter to decouple the initialization from the reset hook, preparing it
for contexts like atomic_create_state where the connector state isn't
assigned yet.

> diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c
> index 6238066fd5d60..1424c4873251c 100644
> --- a/drivers/gpu/drm/drm_atomic_state_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_state_helper.c
[ ... ]
> @@ -501,16 +501,17 @@ void drm_atomic_helper_connector_tv_margins_state_init(struct drm_connector_stat
>  EXPORT_SYMBOL(drm_atomic_helper_connector_tv_margins_state_init);
>  
>  /**
> - * drm_atomic_helper_connector_tv_reset - Resets Analog TV connector properties
> + * drm_atomic_helper_connector_tv_state_init - Initializes Analog TV connector properties
> + * @state: the DRM State object
>   * @connector: DRM connector
>   *
> - * Resets the analog TV properties attached to a connector
> + * Initializes the analog TV properties attached to a connector
>   */
> -void drm_atomic_helper_connector_tv_reset(struct drm_connector *connector)
> +void drm_atomic_helper_connector_tv_state_init(struct drm_connector_state *state,
> +					       struct drm_connector *connector)
>  {
>  	struct drm_device *dev = connector->dev;
>  	struct drm_cmdline_mode *cmdline = &connector->cmdline_mode;
> -	struct drm_connector_state *state = connector->state;
>  	struct drm_property *prop;
>  	uint64_t val;
>  
[ ... ]
> @@ -574,7 +575,7 @@ void drm_atomic_helper_connector_tv_reset(struct drm_connector *connector)
>  	drm_atomic_helper_connector_tv_margins_state_init(connector->state,
>  							  connector);

[Severity: High]
Since the new state parameter is added to decouple this function from
the reset hook, should this call pass the newly provided state instead of
connector->state?

When a driver like vc4_vec calls this via its atomic_create_state hook,
connector->state is not yet assigned and is NULL.

Passing connector->state here forwards a NULL pointer to
drm_atomic_helper_connector_tv_margins_state_init(), which then writes
directly to state->tv.margins.left, leading to a NULL pointer dereference
during device probe:

void drm_atomic_helper_connector_tv_margins_state_init(struct drm_connector_state *state,
						       struct drm_connector *connector)
{
	struct drm_cmdline_mode *cmdline = &connector->cmdline_mode;

	state->tv.margins.left = cmdline->tv_margins.left;

>  }
> -EXPORT_SYMBOL(drm_atomic_helper_connector_tv_reset);
> +EXPORT_SYMBOL(drm_atomic_helper_connector_tv_state_init);

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org?part=56

^ permalink raw reply	[flat|nested] 98+ messages in thread

* Re: [PATCH 61/75] drm/sun4i: tv: Convert to atomic_create_state
  2026-10-14 17:27 ` [PATCH 61/75] drm/sun4i: tv: " Maxime Ripard
@ 2026-10-14 18:08   ` sashiko-bot
  0 siblings, 0 replies; 98+ messages in thread
From: sashiko-bot @ 2026-10-14 18:08 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: dri-devel, linux-sunxi

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] drm: NULL pointer dereference when initializing TV connector state
--

commit a85a6a0ad13c063d072cdcda87267ea8867cafa3
Author: Maxime Ripard <mripard@kernel.org>

drm/sun4i: tv: Convert to atomic_create_state

The sun4i TV connector reset implementation is converted to an
atomic_create_state hook. It creates the pristine state and initializes
the analog TV properties.

> diff --git a/drivers/gpu/drm/sun4i/sun4i_tv.c b/drivers/gpu/drm/sun4i/sun4i_tv.c
> index ea86f8a6a35e7..a68e5f7a03d2c 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_tv.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_tv.c
[ ... ]
> -static void sun4i_tv_connector_reset(struct drm_connector *connector)
> +static struct drm_connector_state *
> +sun4i_tv_connector_create_state(struct drm_connector *connector)
>  {
> -	drm_atomic_helper_connector_reset(connector);
> -	drm_atomic_helper_connector_tv_state_init(connector->state, connector);
> +	struct drm_connector_state *connector_state;
> +
> +	connector_state = drm_atomic_helper_connector_create_state(connector);
> +	if (IS_ERR(connector_state))
> +		return connector_state;
> +
> +	drm_atomic_helper_connector_tv_state_init(connector_state, connector);

[Severity: High]
Does this trigger a NULL pointer dereference during initialization?

When the DRM core resets the connector state, it explicitly clears the old
state before invoking the .atomic_create_state hook:

drm_mode_config_connector_reset_with_create_state() {
        ...
        if (connector->state) {
                ...
                connector->state = NULL;
        }
        return drm_mode_config_connector_create_state(connector);
}

The core helper drm_atomic_helper_connector_tv_state_init() then mistakenly
passes the unassigned connector->state down to the margins initialization
instead of the newly allocated state:

drm_atomic_helper_connector_tv_state_init() {
        ...
        drm_atomic_helper_connector_tv_margins_state_init(connector->state,
                                                          connector);
}

This causes drm_atomic_helper_connector_tv_margins_state_init() to
unconditionally dereference the NULL state pointer:

drm_atomic_helper_connector_tv_margins_state_init(state, ...) {
        ...
        state->tv.margins.left = cmdline->tv_margins.left;
        ...
}

The previous .reset hook implementation masked this core helper bug because
it assigned connector->state prior to calling the TV state initialization
helper.

Could we fix the core helper to pass the correct state pointer, or should
this driver handle the initialization differently to avoid the crash?

> +
> +	return connector_state;
>  }

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org?part=61

^ permalink raw reply	[flat|nested] 98+ messages in thread

* Re: [PATCH 52/75] drm/virtio: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:27 ` [PATCH 52/75] drm/virtio: " Maxime Ripard
@ 2026-10-14 18:10   ` sashiko-bot
  0 siblings, 0 replies; 98+ messages in thread
From: sashiko-bot @ 2026-10-14 18:10 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: virtualization, Michael S. Tsirkin, Eugenio Perez

> The virtio connector implementation uses the deprecated
> drm_atomic_helper_connector_reset() as its reset hook.
> 
> Switch to drm_atomic_helper_connector_create_state() instead.
> 
> Signed-off-by: Maxime Ripard <mripard@kernel.org>

Sashiko has reviewed this patch and found no issues. It looks great!

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org?part=52


^ permalink raw reply	[flat|nested] 98+ messages in thread

* Re: [PATCH 64/75] drm/vc4: vec: Convert to atomic_create_state
  2026-10-14 17:27 ` [PATCH 64/75] drm/vc4: vec: " Maxime Ripard
@ 2026-10-14 18:10   ` sashiko-bot
  0 siblings, 0 replies; 98+ messages in thread
From: sashiko-bot @ 2026-10-14 18:10 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: dri-devel

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] drm/vc4: NULL pointer deref in drm_atomic_helper_connector_tv_state_init
--

commit 0f9d479612175281e5b2697d74e34321440ab363
Author: Maxime Ripard <mripard@kernel.org>

drm/vc4: vec: Convert to atomic_create_state

This commit converts the vc4 VEC connector reset implementation to an
atomic_create_state hook. It creates a pristine state and initializes
the analog TV properties without performing hardware resets.

> diff --git a/drivers/gpu/drm/vc4/vc4_vec.c b/drivers/gpu/drm/vc4/vc4_vec.c
> --- a/drivers/gpu/drm/vc4/vc4_vec.c
> +++ b/drivers/gpu/drm/vc4/vc4_vec.c

[ ... ]

> -static void vc4_vec_connector_reset(struct drm_connector *connector)
> +static struct drm_connector_state *
> +vc4_vec_connector_create_state(struct drm_connector *connector)
>  {
> -	drm_atomic_helper_connector_reset(connector);
> -	drm_atomic_helper_connector_tv_state_init(connector->state, connector);
> +	struct drm_connector_state *connector_state;
> +
> +	connector_state = drm_atomic_helper_connector_create_state(connector);
> +	if (IS_ERR(connector_state))
> +		return connector_state;
> +
> +	drm_atomic_helper_connector_tv_state_init(connector_state, connector);

[Severity: High]
Will this cause a NULL pointer dereference during display initialization?

The core DRM function drm_mode_config_connector_reset_with_create_state()
explicitly sets connector->state to NULL before invoking the
atomic_create_state hook.

This means connector->state is NULL when
drm_atomic_helper_connector_tv_state_init() is called here.

Looking at drm_atomic_helper_connector_tv_state_init() in
drm_atomic_state_helper.c, it ignores the local state parameter when
initializing margins and instead passes connector->state:

void drm_atomic_helper_connector_tv_state_init(
        struct drm_connector_state *state,
        struct drm_connector *connector)
{
        ...
        drm_atomic_helper_connector_tv_margins_state_init(connector->state,
                                                          connector);
}

Because connector->state is NULL in this context, does calling this
helper result in a guaranteed crash when the margins initializer
attempts to dereference the state parameter?

> +
> +	return connector_state;
>  }

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org?part=64

^ permalink raw reply	[flat|nested] 98+ messages in thread

* Re: [PATCH 70/75] drm/nouveau: Convert to atomic_create_state
  2026-10-14 17:27   ` Maxime Ripard
  (?)
@ 2026-10-14 18:13   ` sashiko-bot
  -1 siblings, 0 replies; 98+ messages in thread
From: sashiko-bot @ 2026-10-14 18:13 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: dri-devel

Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [High] drm/nouveau: Assigning ERR_PTR to connector->state causes panic in cleanup
- [High] drm/nouveau: Invalid kfree of embedded connector state on non-atomic devices
- [Medium] drm/nouveau: MST connectors lose DRM properties on initialization
--

commit 5c80f0bbb55c00fa7eb36613e602205469912331
Author: Maxime Ripard <mripard@kernel.org>

drm/nouveau: Convert to atomic_create_state

The nouveau connector reset implementation creates a custom state
subclass, but only initializes a pristine state and sets
driver-specific defaults without resetting any hardware. This is
equivalent to what atomic_create_state expects. Convert to it.

> diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c
> index e91130f93db67..39a23d0e9be56 100644
> --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
> +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
[ ... ]
> @@ -1281,8 +1281,11 @@ nv50_mstc_new(struct nv50_mstm *mstm, struct drm_dp_mst_port *port,
>  
>  	drm_connector_helper_add(&mstc->connector, &nv50_mstc_help);
>  
> -	mstc->connector.funcs->reset(&mstc->connector);
> -	nouveau_conn_attach_properties(&mstc->connector);
> +	mstc->connector.state = mstc->connector.funcs->atomic_create_state(&mstc->connector);

[Severity: Medium]
Will dropping this call to nouveau_conn_attach_properties() cause MST
connectors to silently lose access to their DRM properties?

Before this patch, MST connectors would get properties like underscan_property,
scaling_mode_property, dithering_mode, and vibrant_hue registered here.
Without this call, userspace compositors might lose access to these standard
digital output properties.

[Severity: High]
If atomic_create_state() returns an error pointer, this assigns it directly
to mstc->connector.state.

> +	if (IS_ERR(mstc->connector.state)) {
> +		drm_connector_cleanup(&mstc->connector);

Could passing this error pointer to drm_connector_cleanup() result in a kernel
panic?

If we take this error path, drm_connector_cleanup() checks if connector->state
is set (which is true for ERR_PTR), and calls atomic_destroy_state().
This passes the error pointer down to nouveau_conn_atomic_destroy_state(),
which will dereference the invalid pointer and panic.

> +		return PTR_ERR(mstc->connector.state);
> +	}
>  
>  	drm_for_each_crtc(crtc, dev) {
>  		if (!(mstm->outp->dcb->heads & drm_crtc_mask(crtc)))
> diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
> index cc3caf8de64b0..59c8091c67967 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_connector.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
[ ... ]
> @@ -242,21 +242,17 @@ nouveau_conn_atomic_duplicate_state(struct drm_connector *connector)
>  	return &asyc->state;
>  }
>  
> -void
> -nouveau_conn_reset(struct drm_connector *connector)
> +struct drm_connector_state *
> +nouveau_conn_atomic_create_state(struct drm_connector *connector)
>  {
>  	struct nouveau_connector *nv_connector = nouveau_connector(connector);
>  	struct nouveau_conn_atom *asyc;
>  
>  	if (drm_drv_uses_atomic_modeset(connector->dev)) {
>  		if (WARN_ON(!(asyc = kzalloc_obj(*asyc))))
> -			return;
> +			return ERR_PTR(-ENOMEM);
>  
> -		if (connector->state)
> -			nouveau_conn_atomic_destroy_state(connector,
> -							  connector->state);
> -
> -		__drm_atomic_helper_connector_reset(connector, &asyc->state);
> +		__drm_atomic_helper_connector_state_init(&asyc->state, connector);
>  	} else {
>  		asyc = &nv_connector->properties_state;
>  	}

[Severity: High]
On older non-atomic hardware (pre-NV50), this returns a pointer to the
statically embedded nv_connector->properties_state.

The caller nouveau_connector_create() now unconditionally assigns this returned
pointer to connector->state. When the connector is later destroyed or reset,
drm_connector_cleanup() will invoke nouveau_conn_atomic_destroy_state(),
which unconditionally calls kfree() on the state pointer.

Can calling kfree() on this statically embedded struct pointer cause memory
corruption and a kernel panic?

[ ... ]
> @@ -1521,7 +1519,12 @@ nouveau_connector_create(struct drm_device *dev, int index)
>  		}
>  	}
>  
> -	connector->funcs->reset(connector);
> +	connector->state = connector->funcs->atomic_create_state(connector);
> +	if (IS_ERR(connector->state)) {
> +		ret = PTR_ERR(connector->state);
> +		goto drm_conn_err;

[Severity: High]
Similar to the issue in nv50_mstc_new(), if atomic_create_state() fails,
the error pointer is assigned to connector->state.

The goto drm_conn_err path calls drm_connector_cleanup(), which will attempt to
clean up the state using the error pointer.

Does this lead to a panic during the error path cleanup?

> +	}
> +
>  	nouveau_conn_attach_properties(connector);
>  
>  	/* Default scaling mode */

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org?part=70

^ permalink raw reply	[flat|nested] 98+ messages in thread

* Re: [PATCH 57/75] drm/bridge: synopsys: dw-hdmi: Convert to atomic_create_state
  2026-10-14 17:27 ` [PATCH 57/75] drm/bridge: synopsys: dw-hdmi: Convert to atomic_create_state Maxime Ripard
@ 2026-10-14 18:14   ` sashiko-bot
  0 siblings, 0 replies; 98+ messages in thread
From: sashiko-bot @ 2026-10-14 18:14 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: dri-devel

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] drm/bridge: dw-hdmi: missing error check for drm_connector_init_with_ddc
- [Medium] drm/bridge: dw-hdmi: max_bpc state is lost during drm_mode_config_reset()
--

commit 00a6167b722bff3c39b80a7bcee2827035fd652c
Author: Maxime Ripard <mripard@kernel.org>
Subject: drm/bridge: synopsys: dw-hdmi: Convert to atomic_create_state

The dw-hdmi driver allocates an initial connector state during creation.
This commit converts the allocation from drm_atomic_helper_connector_reset()
to drm_atomic_helper_connector_create_state() and adds proper error handling.

> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> index 917cf764c9c5d..5f11707c67b5c 100644
> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> @@ -2605,7 +2605,15 @@ static int dw_hdmi_connector_create(struct dw_hdmi *hdmi)
>  	 * drm_connector_attach_max_bpc_property() requires the
>  	 * connector to have a state.
>  	 */
> -	drm_atomic_helper_connector_reset(connector);
> +	if (!connector->state) {
> +		struct drm_connector_state *conn_state;
> +
> +		conn_state = drm_atomic_helper_connector_create_state(connector);
> +		if (IS_ERR(conn_state))
> +			return PTR_ERR(conn_state);
> +
> +		connector->state = conn_state;
> +	}

[Severity: High]
Does this code handle failures from drm_connector_init_with_ddc() correctly?

Looking at dw_hdmi_connector_create(), drm_connector_init_with_ddc() is called
just before this block, but its return value is ignored:

    drm_connector_init_with_ddc(hdmi->bridge.dev, connector,
                                &dw_hdmi_connector_funcs,
                                DRM_MODE_CONNECTOR_HDMIA,
                                hdmi->ddc);

If this initialization fails, connector->base.properties remains uninitialized
(NULL).

When execution continues to drm_connector_attach_max_bpc_property(), it will
attempt to attach the property and dereference connector->base.properties,
resulting in a NULL pointer dereference.

>  
>  	drm_connector_attach_max_bpc_property(connector, 8, 16);

[Severity: Medium]
Will this max_bpc initialization be lost during a drm_mode_config_reset()?

The driver assigns .atomic_create_state =
drm_atomic_helper_connector_create_state in dw_hdmi_connector_funcs without
a custom hook to restore max_bpc.

If a host DRM driver calls drm_mode_config_reset(), the core fallback in
drm_mode_config_connector_reset_with_create_state() will destroy this
initially allocated state and replace it with a newly allocated one:

    if (connector->state) {
        connector->funcs->atomic_destroy_state(connector, connector->state);
        connector->state = NULL;
    }

    return drm_mode_config_connector_create_state(connector);

This wipes out the max_bpc property attached here, resetting it to 0. This
could cause the driver to incorrectly fall back to 8-bit color depth later
in dw_hdmi_bridge_mode_set().

>

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org?part=57

^ permalink raw reply	[flat|nested] 98+ messages in thread

* Re: [PATCH 66/75] drm/amdgpu: dm: Convert to atomic_create_state
  2026-10-14 17:27 ` [PATCH 66/75] drm/amdgpu: dm: Convert to atomic_create_state Maxime Ripard
@ 2026-10-14 18:16   ` sashiko-bot
  0 siblings, 0 replies; 98+ messages in thread
From: sashiko-bot @ 2026-10-14 18:16 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: dri-devel

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] drm/amdgpu: memory leak and ERR_PTR dereference in dm_dp_add_mst_connector()
- [High] drm/amdgpu: early return on OOM skips mandatory connector initialization
--

commit 7f186f384d1ae8ab956532945397b878e65c8386
Author: Maxime Ripard <mripard@kernel.org>

drm/amdgpu: dm: Convert to atomic_create_state

The amdgpu_dm connector reset implementation creates a custom state
subclass, but only initializes a pristine state without resetting any
hardware. This is equivalent to what atomic_create_state expects.
Convert to it.

> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c
> index 3a4e98b08ac1f..2c22f00f521c6 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c
[ ... ]
> @@ -3199,8 +3195,16 @@ void amdgpu_dm_connector_init_helper(struct amdgpu_display_manager *dm,
>  	 * Some of the properties below require access to state, like bpc.
>  	 * Allocate some default initial connector state with our reset helper.
>  	 */
> -	if (aconnector->base.funcs->reset)
> -		aconnector->base.funcs->reset(&aconnector->base);
> +	if (!aconnector->base.state &&
> +	    aconnector->base.funcs->atomic_create_state) {
> +		struct drm_connector_state *conn_state;
> +
> +		conn_state = aconnector->base.funcs->atomic_create_state(&aconnector->base);
> +		if (IS_ERR(conn_state))
> +			return;

[Severity: High]
If memory allocation fails during atomic_create_state() and we return early
here, does it skip mandatory connector initialization?

Since amdgpu_dm_connector_init_helper() returns void, the caller
amdgpu_dm_connector_init() is unaware of the failure and continues execution.
It subsequently calls amdgpu_dm_initialize_dp_connector(), which
unconditionally dereferences aconnector->dc_link->ddc.

Since aconnector->dc_link assignment is skipped in the aborted helper, could
this result in a NULL pointer dereference?

[ ... ]
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> index a5b15bef8aa0a..cb189c098ec3e 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
[ ... ]
> @@ -738,7 +738,7 @@ dm_dp_add_mst_connector(struct drm_dp_mst_topology_mgr *mgr,
>  	 * Initialize connector state before adding the connectror to drm and
>  	 * framebuffer lists
>  	 */
> -	amdgpu_dm_connector_funcs_reset(connector);
> +	connector->state = amdgpu_dm_connector_atomic_create_state(connector);

[Severity: High]
Can this overwrite the connector->state pointer and leak the previously
allocated state?

Earlier in dm_dp_add_mst_connector(), amdgpu_dm_connector_init_helper() is
called, which allocates and initializes a new connector state and assigns it
to connector->state. Overwriting it here appears to drop custom properties
attached to the state in the interim (such as max_requested_bpc set by
drm_connector_attach_max_bpc_property).

Additionally, amdgpu_dm_connector_atomic_create_state() can return
ERR_PTR(-ENOMEM) on allocation failure. Because this is directly assigned to
connector->state without an IS_ERR() check, will the DRM core subsequently
dereference this error pointer?

>  
>  	drm_dp_mst_get_port_malloc(port);

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org?part=66

^ permalink raw reply	[flat|nested] 98+ messages in thread

* Re: [PATCH 30/75] drm/msm: dpu1: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` [PATCH 30/75] drm/msm: dpu1: " Maxime Ripard
@ 2026-10-14 18:25   ` Dmitry Baryshkov
  0 siblings, 0 replies; 98+ messages in thread
From: Dmitry Baryshkov @ 2026-10-14 18:25 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter,
	dri-devel, Abhinav Kumar, Dmitry Baryshkov, Jessica Zhang,
	Marijn Suijten, Rob Clark, Sean Paul, freedreno, linux-arm-msm

On Wed, Oct 14, 2026 at 07:26:53PM +0200, Maxime Ripard wrote:
> The msm: dpu1 connector implementation uses the deprecated
> drm_atomic_helper_connector_reset() as its reset hook.
> 
> Switch to drm_atomic_helper_connector_create_state() instead.
> 
> Signed-off-by: Maxime Ripard <mripard@kernel.org>
> ---
> Cc: Abhinav Kumar <abhinav.kumar@linux.dev>
> Cc: Dmitry Baryshkov <lumag@kernel.org>
> Cc: Jessica Zhang <jesszhan0024@gmail.com>
> Cc: Marijn Suijten <marijn.suijten@somainline.org>
> Cc: Rob Clark <robin.clark@oss.qualcomm.com>
> Cc: Sean Paul <sean@poorly.run>
> Cc: freedreno@lists.freedesktop.org
> Cc: linux-arm-msm@vger.kernel.org
> ---
>  drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>


-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 98+ messages in thread

* Re: [PATCH 15/75] drm/bridge: sii902x: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` [PATCH 15/75] drm/bridge: sii902x: " Maxime Ripard
@ 2026-10-14 18:26   ` Dmitry Baryshkov
  0 siblings, 0 replies; 98+ messages in thread
From: Dmitry Baryshkov @ 2026-10-14 18:26 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter,
	dri-devel

On Wed, Oct 14, 2026 at 07:26:38PM +0200, Maxime Ripard wrote:
> The bridge: sii902x connector implementation uses the deprecated
> drm_atomic_helper_connector_reset() as its reset hook.
> 
> Switch to drm_atomic_helper_connector_create_state() instead.
> 
> Signed-off-by: Maxime Ripard <mripard@kernel.org>
> ---
>  drivers/gpu/drm/bridge/sii902x.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>


-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 98+ messages in thread

* Re: [PATCH 16/75] drm/bridge: simple-bridge: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` [PATCH 16/75] drm/bridge: simple-bridge: " Maxime Ripard
@ 2026-10-14 18:27   ` Dmitry Baryshkov
  0 siblings, 0 replies; 98+ messages in thread
From: Dmitry Baryshkov @ 2026-10-14 18:27 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter,
	dri-devel

On Wed, Oct 14, 2026 at 07:26:39PM +0200, Maxime Ripard wrote:
> The bridge: simple-bridge connector implementation uses the deprecated
> drm_atomic_helper_connector_reset() as its reset hook.
> 
> Switch to drm_atomic_helper_connector_create_state() instead.
> 
> Signed-off-by: Maxime Ripard <mripard@kernel.org>
> ---
>  drivers/gpu/drm/bridge/simple-bridge.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>


-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 98+ messages in thread

* Re: [PATCH 25/75] drm/imx: ipuv3: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` [PATCH 25/75] drm/imx: ipuv3: " Maxime Ripard
@ 2026-10-14 18:38   ` Frank Li
  0 siblings, 0 replies; 98+ messages in thread
From: Frank Li @ 2026-10-14 18:38 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter,
	dri-devel, Fabio Estevam, Frank Li, Pengutronix Kernel Team,
	Philipp Zabel, Sascha Hauer, imx

On Wed, Oct 14, 2026 at 07:26:48PM +0200, Maxime Ripard wrote:
> The imx: ipuv3 connector implementation uses the deprecated
> drm_atomic_helper_connector_reset() as its reset hook.
>
> Switch to drm_atomic_helper_connector_create_state() instead.
>
> Signed-off-by: Maxime Ripard <mripard@kernel.org>
> ---

Reviewed-by: Frank Li <Frank.Li@nxp.com>

> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Frank Li <Frank.Li@nxp.com>
> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: imx@lists.linux.dev
> ---
>  drivers/gpu/drm/imx/ipuv3/imx-tve.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/imx/ipuv3/imx-tve.c b/drivers/gpu/drm/imx/ipuv3/imx-tve.c
> index e861b8b9d8fa..4ece79374372 100644
> --- a/drivers/gpu/drm/imx/ipuv3/imx-tve.c
> +++ b/drivers/gpu/drm/imx/ipuv3/imx-tve.c
> @@ -312,11 +312,11 @@ static void imx_tve_connector_destroy(struct drm_connector *connector)
>  }
>
>  static const struct drm_connector_funcs imx_tve_connector_funcs = {
>  	.fill_modes = drm_helper_probe_single_connector_modes,
>  	.destroy = imx_tve_connector_destroy,
> -	.reset = drm_atomic_helper_connector_reset,
> +	.atomic_create_state = drm_atomic_helper_connector_create_state,
>  	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
>  };
>
>  static const struct drm_connector_helper_funcs imx_tve_connector_helper_funcs = {
>
> --
> 2.55.0
>
>

^ permalink raw reply	[flat|nested] 98+ messages in thread

* Re: [PATCH 35/75] drm/solomon: ssd130x: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:26 ` [PATCH 35/75] drm/solomon: ssd130x: " Maxime Ripard
@ 2026-10-14 20:21   ` Javier Martinez Canillas
  0 siblings, 0 replies; 98+ messages in thread
From: Javier Martinez Canillas @ 2026-10-14 20:21 UTC (permalink / raw)
  To: Maxime Ripard, Maarten Lankhorst, Thomas Zimmermann, David Airlie,
	Simona Vetter
  Cc: dri-devel, Maxime Ripard

Maxime Ripard <mripard@kernel.org> writes:

Hello Maxime,

> The solomon: ssd130x connector implementation uses the deprecated
> drm_atomic_helper_connector_reset() as its reset hook.
>
> Switch to drm_atomic_helper_connector_create_state() instead.
>
> Signed-off-by: Maxime Ripard <mripard@kernel.org>
> ---
> Cc: Javier Martinez Canillas <javierm@redhat.com>
> ---
>  drivers/gpu/drm/solomon/ssd130x.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>

Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>

-- 
Best regards,

Javier Martinez Canillas
Core Platforms
Red Hat


^ permalink raw reply	[flat|nested] 98+ messages in thread

* Re: [PATCH 39/75] drm/sysfb: Switch to drm_atomic_helper_connector_create_state
  2026-10-14 17:27 ` [PATCH 39/75] drm/sysfb: " Maxime Ripard
@ 2026-10-14 20:21   ` Javier Martinez Canillas
  0 siblings, 0 replies; 98+ messages in thread
From: Javier Martinez Canillas @ 2026-10-14 20:21 UTC (permalink / raw)
  To: Maxime Ripard, Maarten Lankhorst, Thomas Zimmermann, David Airlie,
	Simona Vetter
  Cc: dri-devel, Maxime Ripard

Maxime Ripard <mripard@kernel.org> writes:

> The sysfb connector implementation uses the deprecated
> drm_atomic_helper_connector_reset() as its reset hook.
>
> Switch to drm_atomic_helper_connector_create_state() instead.
>
> Signed-off-by: Maxime Ripard <mripard@kernel.org>
> ---
> Cc: Javier Martinez Canillas <javierm@redhat.com>
> ---
>  drivers/gpu/drm/sysfb/drm_sysfb_helper.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>

Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>

-- 
Best regards,

Javier Martinez Canillas
Core Platforms
Red Hat


^ permalink raw reply	[flat|nested] 98+ messages in thread

end of thread, other threads:[~2026-10-14 20:21 UTC | newest]

Thread overview: 98+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-14 17:26 [PATCH 00/75] drm/connector: Convert all drivers to atomic_create_state and remove reset Maxime Ripard
2026-10-14 17:26 ` Maxime Ripard
2026-10-14 17:26 ` [PATCH 01/75] drm/panel: Add atomic_create_state support Maxime Ripard
2026-10-14 17:45   ` sashiko-bot
2026-10-14 17:26 ` [PATCH 02/75] drm/adp: Switch to drm_atomic_helper_connector_create_state Maxime Ripard
2026-10-14 17:26 ` [PATCH 03/75] drm/amdgpu: vkms: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 04/75] drm/amdgpu: dm: " Maxime Ripard
2026-10-14 17:52   ` sashiko-bot
2026-10-14 17:26 ` [PATCH 05/75] drm/arm: komeda: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 06/75] drm/aspeed: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 07/75] drm/ast: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 08/75] drm/bridge: analogix-anx6345: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 09/75] drm/bridge: analogix-anx78xx: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 10/75] drm/bridge: chrontel-ch7033: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 11/75] drm/bridge: lontium-lt8912b: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 12/75] drm/bridge: megachips: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 13/75] drm/bridge: nxp-ptn3460: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 14/75] drm/panel: " Maxime Ripard
2026-10-14 17:48   ` sashiko-bot
2026-10-14 17:26 ` [PATCH 15/75] drm/bridge: sii902x: " Maxime Ripard
2026-10-14 18:26   ` Dmitry Baryshkov
2026-10-14 17:26 ` [PATCH 16/75] drm/bridge: simple-bridge: " Maxime Ripard
2026-10-14 18:27   ` Dmitry Baryshkov
2026-10-14 17:26 ` [PATCH 17/75] drm/bridge: synopsys: dw-hdmi: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 18/75] drm/bridge: tc358767: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 19/75] drm/bridge: tda998x: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 20/75] drm/bridge: ti-tfp410: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 21/75] drm/exynos: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 22/75] drm/fsl-dcu: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 23/75] drm/hisilicon: hibmc: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 24/75] drm/hyperv: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 25/75] drm/imx: ipuv3: " Maxime Ripard
2026-10-14 18:38   ` Frank Li
2026-10-14 17:26 ` [PATCH 26/75] drm/logicvc: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 27/75] drm/loongson: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 28/75] drm/mgag200: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 29/75] drm/mipi-dbi: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 30/75] drm/msm: dpu1: " Maxime Ripard
2026-10-14 18:25   ` Dmitry Baryshkov
2026-10-14 17:26 ` [PATCH 31/75] drm/qxl: " Maxime Ripard
2026-10-14 17:53   ` sashiko-bot
2026-10-14 17:26 ` [PATCH 32/75] drm/renesas: shmobile: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 33/75] drm/sitronix: st7571: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 34/75] drm/sitronix: st7920: " Maxime Ripard
2026-10-14 17:26 ` [PATCH 35/75] drm/solomon: ssd130x: " Maxime Ripard
2026-10-14 20:21   ` Javier Martinez Canillas
2026-10-14 17:26 ` [PATCH 36/75] drm/sti: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 37/75] drm/stm: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 38/75] drm/sun4i: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 39/75] drm/sysfb: " Maxime Ripard
2026-10-14 20:21   ` Javier Martinez Canillas
2026-10-14 17:27 ` [PATCH 40/75] drm/tegra: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 41/75] drm/tests: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 42/75] drm/tiny: arcpgu: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 43/75] drm/tiny: bochs: " Maxime Ripard
2026-10-14 17:56   ` sashiko-bot
2026-10-14 17:27 ` [PATCH 44/75] drm/tiny: cirrus: " Maxime Ripard
2026-10-14 17:57   ` sashiko-bot
2026-10-14 17:27 ` [PATCH 45/75] drm/tiny: gm12u320: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 46/75] drm/tiny: pixpaper: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 47/75] drm/tiny: repaper: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 48/75] drm/tiny: sharp: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 49/75] drm/udl: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 50/75] drm/vboxvideo: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 51/75] drm/vc4: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 52/75] drm/virtio: " Maxime Ripard
2026-10-14 18:10   ` sashiko-bot
2026-10-14 17:27 ` [PATCH 53/75] drm/vkms: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 54/75] drm/xen: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 55/75] drm/atomic-state-helper: Rename connector_tv_margins_reset to state_init Maxime Ripard
2026-10-14 17:27 ` [PATCH 56/75] drm/atomic-state-helper: Rename connector_tv_reset " Maxime Ripard
2026-10-14 18:03   ` sashiko-bot
2026-10-14 17:27 ` [PATCH 57/75] drm/bridge: synopsys: dw-hdmi: Convert to atomic_create_state Maxime Ripard
2026-10-14 18:14   ` sashiko-bot
2026-10-14 17:27 ` [PATCH 58/75] drm/meson: " Maxime Ripard
2026-10-14 17:27   ` Maxime Ripard
2026-10-14 17:27 ` [PATCH 59/75] drm/gud: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 60/75] drm/sun4i: hdmi: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 61/75] drm/sun4i: tv: " Maxime Ripard
2026-10-14 18:08   ` sashiko-bot
2026-10-14 17:27 ` [PATCH 62/75] drm/tests: hdmi: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 63/75] drm/vc4: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 64/75] drm/vc4: vec: " Maxime Ripard
2026-10-14 18:10   ` sashiko-bot
2026-10-14 17:27 ` [PATCH 65/75] drm/connector: Remove drm_atomic_helper_connector_reset() Maxime Ripard
2026-10-14 17:27 ` [PATCH 66/75] drm/amdgpu: dm: Convert to atomic_create_state Maxime Ripard
2026-10-14 18:16   ` sashiko-bot
2026-10-14 17:27 ` [PATCH 67/75] drm/malidp: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 68/75] drm/ast: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 69/75] drm/i915: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 70/75] drm/nouveau: " Maxime Ripard
2026-10-14 17:27   ` Maxime Ripard
2026-10-14 18:13   ` sashiko-bot
2026-10-14 17:27 ` [PATCH 71/75] drm/rcar-du: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 72/75] drm/tegra: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 73/75] drm/vmwgfx: " Maxime Ripard
2026-10-14 17:27 ` [PATCH 74/75] drm/connector: Remove __drm_atomic_helper_connector_reset() Maxime Ripard
2026-10-14 17:27 ` [PATCH 75/75] drm/connector: Remove reset Maxime Ripard

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.