All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/83] drm: Switch drivers to drm_mode_config_create_initial_state
@ 2026-11-05 14:07 ` Maxime Ripard
  0 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:07 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Janne Grunau, Sasha Finkelstein, asahi, Christian König,
	Alex Deucher, amd-gfx, Aun-Ali Zaidi, Liviu Dudau, Russell King,
	Andrew Jeffery, Joel Stanley, Dave Airlie, Jocelyn Falempe,
	Alexandre Belloni, Claudiu Beznea, Dharma Balasubiramani,
	Manikandan Muralidharan, Nicolas Ferre, Alim Akhtar, Inki Dae,
	Krzysztof Kozlowski, Kyungmin Park, Peter Griffin, Seung-Woo Kim,
	linux-samsung-soc, Alison Wang, Stefan Agner, Ruben Wauters,
	Tian Tao, Xinwei Kong, Yongbang Shi, John Stultz, Sumit Semwal,
	Xinliang Liu, Yongqin Liu, Dexuan Cui, Long Li, Saurabh Sengar,
	linux-hyperv, Fabio Estevam, Frank Li, Liu Ying,
	Pengutronix Kernel Team, Sascha Hauer, imx, Laurentiu Palcu,
	Lucas Stach, Philipp Zabel, Paul Cercueil, linux-mips,
	Anitha Chrisanthus, Paul Kocialkowski, Huacai Chen, Icenowy Zheng,
	Jianmin Lv, Mingcong Bai, Qianhai Wu, Xi Ruoyao, Linus Walleij,
	AngeloGioacchino Del Regno, Chun-Kuang Hu, Matthias Brugger,
	Jerome Brunet, Kevin Hilman, Martin Blumenstingl, linux-amlogic,
	Abhinav Kumar, Dmitry Baryshkov, Jessica Zhang, Marijn Suijten,
	Rob Clark, Sean Paul, freedreno, linux-arm-msm, Marek Vasut,
	Danilo Krummrich, Lyude Paul, nouveau, Tomi Valkeinen,
	Gerd Hoffmann, spice-devel, virtualization, Geert Uytterhoeven,
	Kieran Bingham, Laurent Pinchart, Magnus Damm, Tomi Valkeinen,
	linux-renesas-soc, Biju Das, Heiko Stübner, Sandy Huang,
	linux-rockchip, Marcus Folkesson, David Lechner, Iker Pedrosa,
	Javier Martinez Canillas, Baolin Wang, Chunyan Zhang, Orson Zhai,
	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,
	Jyri Sarha, Alexey Brodkin, Hans de Goede, Kamlesh Gurudasani,
	Alex Lanzano, LiangCheng Wang, Maíra Canal, Dave Stevenson,
	Raspberry Pi Kernel Maintenance, Chia-I Wu, Dmitry Osipenko,
	Gurchetan Singh, Haneen Mohammed, Louis Chauvet, Melissa Wen,
	Broadcom internal kernel review list, Zack Rusin,
	Oleksandr Andrushchenko, Michal Simek, Aditya Garg, Andy Yan

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles. However, the two roles need different
behaviors, notably for objects like drm_private_obj that must persist
across suspend/resume and are excluded from drm_mode_config_reset()
by design.

Previous series introduced drm_mode_config_create_initial_state() to
handle only the initial state creation at probe time, including
drm_private_obj. Unlike drm_mode_config_reset(), it returns an error
code, allowing drivers to properly handle allocation failures.

This series switches all drivers calling drm_mode_config_reset() at
probe time to drm_mode_config_create_initial_state(). The conversion
was done using a Coccinelle semantic patch.

This is part, and the final piece, of a larger transition to remove the
overloaded reset semantics from the KMS subsystem, following similar
series for planes, CRTCs, connectors, and bridges.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Maxime Ripard (83):
      drm/adp: Switch to drm_mode_config_create_initial_state
      drm/amdgpu: Switch to drm_mode_config_create_initial_state
      drm/appletbdrm: Switch to drm_mode_config_create_initial_state
      drm/komeda: Switch to drm_mode_config_create_initial_state
      drm/hdlcd: Switch to drm_mode_config_create_initial_state
      drm/malidp: Switch to drm_mode_config_create_initial_state
      drm/armada: Switch to drm_mode_config_create_initial_state
      drm/aspeed: Switch to drm_mode_config_create_initial_state
      drm/ast: Switch to drm_mode_config_create_initial_state
      drm/atmel-hlcdc: Switch to drm_mode_config_create_initial_state
      drm/exynos: Switch to drm_mode_config_create_initial_state
      drm/fsl-dcu: Switch to drm_mode_config_create_initial_state
      drm/gud: Switch to drm_mode_config_create_initial_state
      drm/hisilicon/hibmc: Switch to drm_mode_config_create_initial_state
      drm/hisilicon/kirin: Switch to drm_mode_config_create_initial_state
      drm/hyperv: Switch to drm_mode_config_create_initial_state
      drm/imx/dc: Switch to drm_mode_config_create_initial_state
      drm/imx/dcss: Switch to drm_mode_config_create_initial_state
      drm/imx/ipuv3: Switch to drm_mode_config_create_initial_state
      drm/ingenic: Switch to drm_mode_config_create_initial_state
      drm/kmb: Switch to drm_mode_config_create_initial_state
      drm/logicvc: Switch to drm_mode_config_create_initial_state
      drm/loongson: Switch to drm_mode_config_create_initial_state
      drm/mcde: Switch to drm_mode_config_create_initial_state
      drm/mediatek: Switch to drm_mode_config_create_initial_state
      drm/meson: Switch to drm_mode_config_create_initial_state
      drm/mgag200: Switch to drm_mode_config_create_initial_state
      drm/msm: Switch to drm_mode_config_create_initial_state
      drm/lcdif: Switch to drm_mode_config_create_initial_state
      drm/mxsfb: Switch to drm_mode_config_create_initial_state
      drm/nouveau: Switch to drm_mode_config_create_initial_state
      drm/omap: Switch to drm_mode_config_create_initial_state
      drm/pl111: Switch to drm_mode_config_create_initial_state
      drm/qxl: Switch to drm_mode_config_create_initial_state
      drm/rcar-du: Switch to drm_mode_config_create_initial_state
      drm/rz-du: Switch to drm_mode_config_create_initial_state
      drm/shmobile: Switch to drm_mode_config_create_initial_state
      drm/rockchip: Switch to drm_mode_config_create_initial_state
      drm/st7571: Switch to drm_mode_config_create_initial_state
      drm/st7586: Switch to drm_mode_config_create_initial_state
      drm/st7735r: Switch to drm_mode_config_create_initial_state
      drm/st7920: Switch to drm_mode_config_create_initial_state
      drm/ssd130x: Switch to drm_mode_config_create_initial_state
      drm/sprd: Switch to drm_mode_config_create_initial_state
      drm/sti: Switch to drm_mode_config_create_initial_state
      drm/stm: Switch to drm_mode_config_create_initial_state
      drm/sun4i: Switch to drm_mode_config_create_initial_state
      drm/corebootdrm: Switch to drm_mode_config_create_initial_state
      drm/efidrm: Switch to drm_mode_config_create_initial_state
      drm/ofdrm: Switch to drm_mode_config_create_initial_state
      drm/simpledrm: Switch to drm_mode_config_create_initial_state
      drm/vesadrm: Switch to drm_mode_config_create_initial_state
      drm/tegra: Switch to drm_mode_config_create_initial_state
      drm/tests: drm_atomic_state_test: Switch to drm_mode_config_create_initial_state
      drm/tests: drm_atomic_test: Switch to drm_mode_config_create_initial_state
      drm/tests: drm_bridge_test: Switch to drm_mode_config_create_initial_state
      drm/tests: drm_hdmi_state_helper_test: Switch to drm_mode_config_create_initial_state
      drm/tidss: Switch to drm_mode_config_create_initial_state
      drm/tilcdc: Switch to drm_mode_config_create_initial_state
      drm/arcpgu: Switch to drm_mode_config_create_initial_state
      drm/bochs: Switch to drm_mode_config_create_initial_state
      drm/cirrus-qemu: Switch to drm_mode_config_create_initial_state
      drm/gm12u320: Switch to drm_mode_config_create_initial_state
      drm/hx8357d: Switch to drm_mode_config_create_initial_state
      drm/ili9163: Switch to drm_mode_config_create_initial_state
      drm/ili9225: Switch to drm_mode_config_create_initial_state
      drm/ili9341: Switch to drm_mode_config_create_initial_state
      drm/ili9486: Switch to drm_mode_config_create_initial_state
      drm/mi0283qt: Switch to drm_mode_config_create_initial_state
      drm/panel-mipi-dbi: Switch to drm_mode_config_create_initial_state
      drm/pixpaper: Switch to drm_mode_config_create_initial_state
      drm/repaper: Switch to drm_mode_config_create_initial_state
      drm/sharp-memory: Switch to drm_mode_config_create_initial_state
      drm/tve200: Switch to drm_mode_config_create_initial_state
      drm/udl: Switch to drm_mode_config_create_initial_state
      drm/vboxvideo: Switch to drm_mode_config_create_initial_state
      drm/vc4: Switch to drm_mode_config_create_initial_state
      drm/verisilicon: Switch to drm_mode_config_create_initial_state
      drm/virtio: Switch to drm_mode_config_create_initial_state
      drm/vkms: Switch to drm_mode_config_create_initial_state
      drm/vmwgfx: Switch to drm_mode_config_create_initial_state
      drm/xen: Switch to drm_mode_config_create_initial_state
      drm/xlnx: Switch to drm_mode_config_create_initial_state

 drivers/gpu/drm/adp/adp_drv.c                                |  4 +---
 drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c                     |  4 +++-
 .../amd/display/amdgpu_dm/tests/amdgpu_dm_connector_test.c   |  3 ++-
 .../amd/display/amdgpu_dm/tests/amdgpu_dm_mst_types_test.c   |  4 +++-
 drivers/gpu/drm/arm/display/komeda/komeda_kms.c              |  4 +++-
 drivers/gpu/drm/arm/hdlcd_drv.c                              |  4 +++-
 drivers/gpu/drm/arm/malidp_drv.c                             |  4 +++-
 drivers/gpu/drm/armada/armada_drv.c                          |  4 +++-
 drivers/gpu/drm/aspeed/aspeed_gfx_drv.c                      |  4 +---
 drivers/gpu/drm/ast/ast_mode.c                               |  4 +++-
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c                 |  4 +++-
 drivers/gpu/drm/exynos/exynos_drm_drv.c                      |  4 +++-
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c                    |  4 +++-
 drivers/gpu/drm/gud/gud_drv.c                                |  4 +++-
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c              |  6 ++++--
 drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c              |  6 ++++--
 drivers/gpu/drm/hyperv/hyperv_drm_modeset.c                  |  4 +---
 drivers/gpu/drm/imx/dc/dc-kms.c                              |  4 +++-
 drivers/gpu/drm/imx/dcss/dcss-kms.c                          |  4 +++-
 drivers/gpu/drm/imx/ipuv3/imx-drm-core.c                     |  4 +++-
 drivers/gpu/drm/ingenic/ingenic-drm-drv.c                    |  4 +++-
 drivers/gpu/drm/kmb/kmb_drv.c                                |  3 +--
 drivers/gpu/drm/logicvc/logicvc_mode.c                       |  4 +++-
 drivers/gpu/drm/loongson/lsdc_drv.c                          |  4 +++-
 drivers/gpu/drm/mcde/mcde_drv.c                              |  4 +++-
 drivers/gpu/drm/mediatek/mtk_drm_drv.c                       |  8 +++++++-
 drivers/gpu/drm/meson/meson_drv.c                            |  4 +++-
 drivers/gpu/drm/mgag200/mgag200_g200.c                       |  4 +++-
 drivers/gpu/drm/mgag200/mgag200_g200eh.c                     |  4 +++-
 drivers/gpu/drm/mgag200/mgag200_g200eh3.c                    |  4 +++-
 drivers/gpu/drm/mgag200/mgag200_g200eh5.c                    |  4 +++-
 drivers/gpu/drm/mgag200/mgag200_g200er.c                     |  4 +++-
 drivers/gpu/drm/mgag200/mgag200_g200ev.c                     |  4 +++-
 drivers/gpu/drm/mgag200/mgag200_g200ew3.c                    |  4 +++-
 drivers/gpu/drm/mgag200/mgag200_g200se.c                     |  4 +++-
 drivers/gpu/drm/mgag200/mgag200_g200wb.c                     |  4 +++-
 drivers/gpu/drm/msm/msm_kms.c                                |  4 +++-
 drivers/gpu/drm/mxsfb/lcdif_drv.c                            |  4 +++-
 drivers/gpu/drm/mxsfb/mxsfb_drv.c                            |  4 +++-
 drivers/gpu/drm/nouveau/nouveau_display.c                    |  4 +++-
 drivers/gpu/drm/omapdrm/omap_drv.c                           |  4 +++-
 drivers/gpu/drm/pl111/pl111_drv.c                            |  4 +++-
 drivers/gpu/drm/qxl/qxl_display.c                            |  3 +--
 drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c                |  4 +++-
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c                 |  4 +++-
 drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c             |  4 +++-
 drivers/gpu/drm/rockchip/rockchip_drm_drv.c                  |  4 +++-
 drivers/gpu/drm/sitronix/st7571.c                            |  4 +++-
 drivers/gpu/drm/sitronix/st7586.c                            |  4 +++-
 drivers/gpu/drm/sitronix/st7735r.c                           |  4 +++-
 drivers/gpu/drm/sitronix/st7920.c                            |  4 +---
 drivers/gpu/drm/solomon/ssd130x.c                            |  4 +---
 drivers/gpu/drm/sprd/sprd_drm.c                              |  6 ++++--
 drivers/gpu/drm/sti/sti_drv.c                                |  6 +++++-
 drivers/gpu/drm/stm/drv.c                                    |  4 +++-
 drivers/gpu/drm/sun4i/sun4i_framebuffer.c                    |  4 +++-
 drivers/gpu/drm/sysfb/corebootdrm.c                          |  4 +++-
 drivers/gpu/drm/sysfb/efidrm.c                               |  4 +++-
 drivers/gpu/drm/sysfb/ofdrm.c                                |  4 +++-
 drivers/gpu/drm/sysfb/simpledrm.c                            |  4 +++-
 drivers/gpu/drm/sysfb/vesadrm.c                              |  4 +++-
 drivers/gpu/drm/tegra/drm.c                                  |  4 +++-
 drivers/gpu/drm/tests/drm_atomic_commit_test.c               |  4 +++-
 drivers/gpu/drm/tests/drm_atomic_test.c                      |  4 +++-
 drivers/gpu/drm/tests/drm_bridge_test.c                      | 12 +++++++++---
 drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c           |  4 +++-
 drivers/gpu/drm/tidss/tidss_drv.c                            |  6 +++++-
 drivers/gpu/drm/tilcdc/tilcdc_drv.c                          |  4 +++-
 drivers/gpu/drm/tiny/appletbdrm.c                            |  4 +---
 drivers/gpu/drm/tiny/arcpgu.c                                |  4 +++-
 drivers/gpu/drm/tiny/bochs.c                                 |  4 +---
 drivers/gpu/drm/tiny/cirrus-qemu.c                           |  4 +++-
 drivers/gpu/drm/tiny/gm12u320.c                              |  4 +++-
 drivers/gpu/drm/tiny/hx8357d.c                               |  4 +++-
 drivers/gpu/drm/tiny/ili9163.c                               |  4 +++-
 drivers/gpu/drm/tiny/ili9225.c                               |  4 +++-
 drivers/gpu/drm/tiny/ili9341.c                               |  4 +++-
 drivers/gpu/drm/tiny/ili9486.c                               |  4 +++-
 drivers/gpu/drm/tiny/mi0283qt.c                              |  4 +++-
 drivers/gpu/drm/tiny/panel-mipi-dbi.c                        |  4 +++-
 drivers/gpu/drm/tiny/pixpaper.c                              |  4 +++-
 drivers/gpu/drm/tiny/repaper.c                               |  4 +++-
 drivers/gpu/drm/tiny/sharp-memory.c                          |  4 +++-
 drivers/gpu/drm/tve200/tve200_drv.c                          |  4 +++-
 drivers/gpu/drm/udl/udl_modeset.c                            |  4 +++-
 drivers/gpu/drm/vboxvideo/vbox_mode.c                        |  5 ++++-
 drivers/gpu/drm/vc4/vc4_kms.c                                |  4 +++-
 drivers/gpu/drm/verisilicon/vs_drm.c                         |  4 +++-
 drivers/gpu/drm/virtio/virtgpu_display.c                     |  3 +--
 drivers/gpu/drm/vkms/vkms_output.c                           |  4 +---
 drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c                          |  4 +++-
 drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c                         |  4 +---
 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c                         |  4 +---
 drivers/gpu/drm/xen/xen_drm_front_kms.c                      |  4 +++-
 drivers/gpu/drm/xlnx/zynqmp_kms.c                            |  6 ++++--
 95 files changed, 277 insertions(+), 124 deletions(-)
---
base-commit: d2a8cee91bfa8616f713c7c8f539a81e8e3554ea
change-id: 20260712-drm-no-more-config-reset-1ea89f56693d

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


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

* [PATCH 00/83] drm: Switch drivers to drm_mode_config_create_initial_state
@ 2026-11-05 14:07 ` Maxime Ripard
  0 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:07 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Janne Grunau, Sasha Finkelstein, asahi, Christian König,
	Alex Deucher, amd-gfx, Aun-Ali Zaidi, Liviu Dudau, Russell King,
	Andrew Jeffery, Joel Stanley, Dave Airlie, Jocelyn Falempe,
	Alexandre Belloni, Claudiu Beznea, Dharma Balasubiramani,
	Manikandan Muralidharan, Nicolas Ferre, Alim Akhtar, Inki Dae,
	Krzysztof Kozlowski, Kyungmin Park, Peter Griffin, Seung-Woo Kim,
	linux-samsung-soc, Alison Wang, Stefan Agner, Ruben Wauters,
	Tian Tao, Xinwei Kong, Yongbang Shi, John Stultz, Sumit Semwal,
	Xinliang Liu, Yongqin Liu, Dexuan Cui, Long Li, Saurabh Sengar,
	linux-hyperv, Fabio Estevam, Frank Li, Liu Ying,
	Pengutronix Kernel Team, Sascha Hauer, imx, Laurentiu Palcu,
	Lucas Stach, Philipp Zabel, Paul Cercueil, linux-mips,
	Anitha Chrisanthus, Paul Kocialkowski, Huacai Chen, Icenowy Zheng,
	Jianmin Lv, Mingcong Bai, Qianhai Wu, Xi Ruoyao, Linus Walleij,
	AngeloGioacchino Del Regno, Chun-Kuang Hu, Matthias Brugger,
	Jerome Brunet, Kevin Hilman, Martin Blumenstingl, linux-amlogic,
	Abhinav Kumar, Dmitry Baryshkov, Jessica Zhang, Marijn Suijten,
	Rob Clark, Sean Paul, freedreno, linux-arm-msm, Marek Vasut,
	Danilo Krummrich, nouveau, Tomi Valkeinen, Gerd Hoffmann,
	spice-devel, virtualization, Geert Uytterhoeven, Kieran Bingham,
	Laurent Pinchart, Magnus Damm, Tomi Valkeinen, linux-renesas-soc,
	Biju Das, Heiko Stübner, Sandy Huang, linux-rockchip,
	Marcus Folkesson, David Lechner, Iker Pedrosa,
	Javier Martinez Canillas, Baolin Wang, Chunyan Zhang, Orson Zhai,
	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, Jyri Sarha,
	Alexey Brodkin, Hans de Goede, Kamlesh Gurudasani, Alex Lanzano,
	LiangCheng Wang, Maíra Canal,
	Raspberry Pi Kernel Maintenance, Chia-I Wu, Dmitry Osipenko,
	Gurchetan Singh, Haneen Mohammed, Louis Chauvet, Melissa Wen,
	Broadcom internal kernel review list, Zack Rusin,
	Oleksandr Andrushchenko, Michal Simek, Aditya Garg, Andy Yan

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles. However, the two roles need different
behaviors, notably for objects like drm_private_obj that must persist
across suspend/resume and are excluded from drm_mode_config_reset()
by design.

Previous series introduced drm_mode_config_create_initial_state() to
handle only the initial state creation at probe time, including
drm_private_obj. Unlike drm_mode_config_reset(), it returns an error
code, allowing drivers to properly handle allocation failures.

This series switches all drivers calling drm_mode_config_reset() at
probe time to drm_mode_config_create_initial_state(). The conversion
was done using a Coccinelle semantic patch.

This is part, and the final piece, of a larger transition to remove the
overloaded reset semantics from the KMS subsystem, following similar
series for planes, CRTCs, connectors, and bridges.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Maxime Ripard (83):
      drm/adp: Switch to drm_mode_config_create_initial_state
      drm/amdgpu: Switch to drm_mode_config_create_initial_state
      drm/appletbdrm: Switch to drm_mode_config_create_initial_state
      drm/komeda: Switch to drm_mode_config_create_initial_state
      drm/hdlcd: Switch to drm_mode_config_create_initial_state
      drm/malidp: Switch to drm_mode_config_create_initial_state
      drm/armada: Switch to drm_mode_config_create_initial_state
      drm/aspeed: Switch to drm_mode_config_create_initial_state
      drm/ast: Switch to drm_mode_config_create_initial_state
      drm/atmel-hlcdc: Switch to drm_mode_config_create_initial_state
      drm/exynos: Switch to drm_mode_config_create_initial_state
      drm/fsl-dcu: Switch to drm_mode_config_create_initial_state
      drm/gud: Switch to drm_mode_config_create_initial_state
      drm/hisilicon/hibmc: Switch to drm_mode_config_create_initial_state
      drm/hisilicon/kirin: Switch to drm_mode_config_create_initial_state
      drm/hyperv: Switch to drm_mode_config_create_initial_state
      drm/imx/dc: Switch to drm_mode_config_create_initial_state
      drm/imx/dcss: Switch to drm_mode_config_create_initial_state
      drm/imx/ipuv3: Switch to drm_mode_config_create_initial_state
      drm/ingenic: Switch to drm_mode_config_create_initial_state
      drm/kmb: Switch to drm_mode_config_create_initial_state
      drm/logicvc: Switch to drm_mode_config_create_initial_state
      drm/loongson: Switch to drm_mode_config_create_initial_state
      drm/mcde: Switch to drm_mode_config_create_initial_state
      drm/mediatek: Switch to drm_mode_config_create_initial_state
      drm/meson: Switch to drm_mode_config_create_initial_state
      drm/mgag200: Switch to drm_mode_config_create_initial_state
      drm/msm: Switch to drm_mode_config_create_initial_state
      drm/lcdif: Switch to drm_mode_config_create_initial_state
      drm/mxsfb: Switch to drm_mode_config_create_initial_state
      drm/nouveau: Switch to drm_mode_config_create_initial_state
      drm/omap: Switch to drm_mode_config_create_initial_state
      drm/pl111: Switch to drm_mode_config_create_initial_state
      drm/qxl: Switch to drm_mode_config_create_initial_state
      drm/rcar-du: Switch to drm_mode_config_create_initial_state
      drm/rz-du: Switch to drm_mode_config_create_initial_state
      drm/shmobile: Switch to drm_mode_config_create_initial_state
      drm/rockchip: Switch to drm_mode_config_create_initial_state
      drm/st7571: Switch to drm_mode_config_create_initial_state
      drm/st7586: Switch to drm_mode_config_create_initial_state
      drm/st7735r: Switch to drm_mode_config_create_initial_state
      drm/st7920: Switch to drm_mode_config_create_initial_state
      drm/ssd130x: Switch to drm_mode_config_create_initial_state
      drm/sprd: Switch to drm_mode_config_create_initial_state
      drm/sti: Switch to drm_mode_config_create_initial_state
      drm/stm: Switch to drm_mode_config_create_initial_state
      drm/sun4i: Switch to drm_mode_config_create_initial_state
      drm/corebootdrm: Switch to drm_mode_config_create_initial_state
      drm/efidrm: Switch to drm_mode_config_create_initial_state
      drm/ofdrm: Switch to drm_mode_config_create_initial_state
      drm/simpledrm: Switch to drm_mode_config_create_initial_state
      drm/vesadrm: Switch to drm_mode_config_create_initial_state
      drm/tegra: Switch to drm_mode_config_create_initial_state
      drm/tests: drm_atomic_state_test: Switch to drm_mode_config_create_initial_state
      drm/tests: drm_atomic_test: Switch to drm_mode_config_create_initial_state
      drm/tests: drm_bridge_test: Switch to drm_mode_config_create_initial_state
      drm/tests: drm_hdmi_state_helper_test: Switch to drm_mode_config_create_initial_state
      drm/tidss: Switch to drm_mode_config_create_initial_state
      drm/tilcdc: Switch to drm_mode_config_create_initial_state
      drm/arcpgu: Switch to drm_mode_config_create_initial_state
      drm/bochs: Switch to drm_mode_config_create_initial_state
      drm/cirrus-qemu: Switch to drm_mode_config_create_initial_state
      drm/gm12u320: Switch to drm_mode_config_create_initial_state
      drm/hx8357d: Switch to drm_mode_config_create_initial_state
      drm/ili9163: Switch to drm_mode_config_create_initial_state
      drm/ili9225: Switch to drm_mode_config_create_initial_state
      drm/ili9341: Switch to drm_mode_config_create_initial_state
      drm/ili9486: Switch to drm_mode_config_create_initial_state
      drm/mi0283qt: Switch to drm_mode_config_create_initial_state
      drm/panel-mipi-dbi: Switch to drm_mode_config_create_initial_state
      drm/pixpaper: Switch to drm_mode_config_create_initial_state
      drm/repaper: Switch to drm_mode_config_create_initial_state
      drm/sharp-memory: Switch to drm_mode_config_create_initial_state
      drm/tve200: Switch to drm_mode_config_create_initial_state
      drm/udl: Switch to drm_mode_config_create_initial_state
      drm/vboxvideo: Switch to drm_mode_config_create_initial_state
      drm/vc4: Switch to drm_mode_config_create_initial_state
      drm/verisilicon: Switch to drm_mode_config_create_initial_state
      drm/virtio: Switch to drm_mode_config_create_initial_state
      drm/vkms: Switch to drm_mode_config_create_initial_state
      drm/vmwgfx: Switch to drm_mode_config_create_initial_state
      drm/xen: Switch to drm_mode_config_create_initial_state
      drm/xlnx: Switch to drm_mode_config_create_initial_state

 drivers/gpu/drm/adp/adp_drv.c                                |  4 +---
 drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c                     |  4 +++-
 .../amd/display/amdgpu_dm/tests/amdgpu_dm_connector_test.c   |  3 ++-
 .../amd/display/amdgpu_dm/tests/amdgpu_dm_mst_types_test.c   |  4 +++-
 drivers/gpu/drm/arm/display/komeda/komeda_kms.c              |  4 +++-
 drivers/gpu/drm/arm/hdlcd_drv.c                              |  4 +++-
 drivers/gpu/drm/arm/malidp_drv.c                             |  4 +++-
 drivers/gpu/drm/armada/armada_drv.c                          |  4 +++-
 drivers/gpu/drm/aspeed/aspeed_gfx_drv.c                      |  4 +---
 drivers/gpu/drm/ast/ast_mode.c                               |  4 +++-
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c                 |  4 +++-
 drivers/gpu/drm/exynos/exynos_drm_drv.c                      |  4 +++-
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c                    |  4 +++-
 drivers/gpu/drm/gud/gud_drv.c                                |  4 +++-
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c              |  6 ++++--
 drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c              |  6 ++++--
 drivers/gpu/drm/hyperv/hyperv_drm_modeset.c                  |  4 +---
 drivers/gpu/drm/imx/dc/dc-kms.c                              |  4 +++-
 drivers/gpu/drm/imx/dcss/dcss-kms.c                          |  4 +++-
 drivers/gpu/drm/imx/ipuv3/imx-drm-core.c                     |  4 +++-
 drivers/gpu/drm/ingenic/ingenic-drm-drv.c                    |  4 +++-
 drivers/gpu/drm/kmb/kmb_drv.c                                |  3 +--
 drivers/gpu/drm/logicvc/logicvc_mode.c                       |  4 +++-
 drivers/gpu/drm/loongson/lsdc_drv.c                          |  4 +++-
 drivers/gpu/drm/mcde/mcde_drv.c                              |  4 +++-
 drivers/gpu/drm/mediatek/mtk_drm_drv.c                       |  8 +++++++-
 drivers/gpu/drm/meson/meson_drv.c                            |  4 +++-
 drivers/gpu/drm/mgag200/mgag200_g200.c                       |  4 +++-
 drivers/gpu/drm/mgag200/mgag200_g200eh.c                     |  4 +++-
 drivers/gpu/drm/mgag200/mgag200_g200eh3.c                    |  4 +++-
 drivers/gpu/drm/mgag200/mgag200_g200eh5.c                    |  4 +++-
 drivers/gpu/drm/mgag200/mgag200_g200er.c                     |  4 +++-
 drivers/gpu/drm/mgag200/mgag200_g200ev.c                     |  4 +++-
 drivers/gpu/drm/mgag200/mgag200_g200ew3.c                    |  4 +++-
 drivers/gpu/drm/mgag200/mgag200_g200se.c                     |  4 +++-
 drivers/gpu/drm/mgag200/mgag200_g200wb.c                     |  4 +++-
 drivers/gpu/drm/msm/msm_kms.c                                |  4 +++-
 drivers/gpu/drm/mxsfb/lcdif_drv.c                            |  4 +++-
 drivers/gpu/drm/mxsfb/mxsfb_drv.c                            |  4 +++-
 drivers/gpu/drm/nouveau/nouveau_display.c                    |  4 +++-
 drivers/gpu/drm/omapdrm/omap_drv.c                           |  4 +++-
 drivers/gpu/drm/pl111/pl111_drv.c                            |  4 +++-
 drivers/gpu/drm/qxl/qxl_display.c                            |  3 +--
 drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c                |  4 +++-
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c                 |  4 +++-
 drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c             |  4 +++-
 drivers/gpu/drm/rockchip/rockchip_drm_drv.c                  |  4 +++-
 drivers/gpu/drm/sitronix/st7571.c                            |  4 +++-
 drivers/gpu/drm/sitronix/st7586.c                            |  4 +++-
 drivers/gpu/drm/sitronix/st7735r.c                           |  4 +++-
 drivers/gpu/drm/sitronix/st7920.c                            |  4 +---
 drivers/gpu/drm/solomon/ssd130x.c                            |  4 +---
 drivers/gpu/drm/sprd/sprd_drm.c                              |  6 ++++--
 drivers/gpu/drm/sti/sti_drv.c                                |  6 +++++-
 drivers/gpu/drm/stm/drv.c                                    |  4 +++-
 drivers/gpu/drm/sun4i/sun4i_framebuffer.c                    |  4 +++-
 drivers/gpu/drm/sysfb/corebootdrm.c                          |  4 +++-
 drivers/gpu/drm/sysfb/efidrm.c                               |  4 +++-
 drivers/gpu/drm/sysfb/ofdrm.c                                |  4 +++-
 drivers/gpu/drm/sysfb/simpledrm.c                            |  4 +++-
 drivers/gpu/drm/sysfb/vesadrm.c                              |  4 +++-
 drivers/gpu/drm/tegra/drm.c                                  |  4 +++-
 drivers/gpu/drm/tests/drm_atomic_commit_test.c               |  4 +++-
 drivers/gpu/drm/tests/drm_atomic_test.c                      |  4 +++-
 drivers/gpu/drm/tests/drm_bridge_test.c                      | 12 +++++++++---
 drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c           |  4 +++-
 drivers/gpu/drm/tidss/tidss_drv.c                            |  6 +++++-
 drivers/gpu/drm/tilcdc/tilcdc_drv.c                          |  4 +++-
 drivers/gpu/drm/tiny/appletbdrm.c                            |  4 +---
 drivers/gpu/drm/tiny/arcpgu.c                                |  4 +++-
 drivers/gpu/drm/tiny/bochs.c                                 |  4 +---
 drivers/gpu/drm/tiny/cirrus-qemu.c                           |  4 +++-
 drivers/gpu/drm/tiny/gm12u320.c                              |  4 +++-
 drivers/gpu/drm/tiny/hx8357d.c                               |  4 +++-
 drivers/gpu/drm/tiny/ili9163.c                               |  4 +++-
 drivers/gpu/drm/tiny/ili9225.c                               |  4 +++-
 drivers/gpu/drm/tiny/ili9341.c                               |  4 +++-
 drivers/gpu/drm/tiny/ili9486.c                               |  4 +++-
 drivers/gpu/drm/tiny/mi0283qt.c                              |  4 +++-
 drivers/gpu/drm/tiny/panel-mipi-dbi.c                        |  4 +++-
 drivers/gpu/drm/tiny/pixpaper.c                              |  4 +++-
 drivers/gpu/drm/tiny/repaper.c                               |  4 +++-
 drivers/gpu/drm/tiny/sharp-memory.c                          |  4 +++-
 drivers/gpu/drm/tve200/tve200_drv.c                          |  4 +++-
 drivers/gpu/drm/udl/udl_modeset.c                            |  4 +++-
 drivers/gpu/drm/vboxvideo/vbox_mode.c                        |  5 ++++-
 drivers/gpu/drm/vc4/vc4_kms.c                                |  4 +++-
 drivers/gpu/drm/verisilicon/vs_drm.c                         |  4 +++-
 drivers/gpu/drm/virtio/virtgpu_display.c                     |  3 +--
 drivers/gpu/drm/vkms/vkms_output.c                           |  4 +---
 drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c                          |  4 +++-
 drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c                         |  4 +---
 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c                         |  4 +---
 drivers/gpu/drm/xen/xen_drm_front_kms.c                      |  4 +++-
 drivers/gpu/drm/xlnx/zynqmp_kms.c                            |  6 ++++--
 95 files changed, 277 insertions(+), 124 deletions(-)
---
base-commit: d2a8cee91bfa8616f713c7c8f539a81e8e3554ea
change-id: 20260712-drm-no-more-config-reset-1ea89f56693d

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


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

* [PATCH 01/83] drm/adp: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
  (?)
@ 2026-11-05 14:07 ` Maxime Ripard
  -1 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:07 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: Janne Grunau, Sasha Finkelstein, asahi

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Janne Grunau <j@jannau.net>
Cc: Sasha Finkelstein <k@chaosmail.tech>
Cc: asahi@lists.linux.dev
---
 drivers/gpu/drm/adp/adp_drv.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/adp/adp_drv.c b/drivers/gpu/drm/adp/adp_drv.c
index fdf0e6316175..795e8a5d3b13 100644
--- a/drivers/gpu/drm/adp/adp_drv.c
+++ b/drivers/gpu/drm/adp/adp_drv.c
@@ -451,7 +451,5 @@ static int adp_setup_mode_config(struct adp_drv_private *adp)
 	}
 
-	drm_mode_config_reset(drm);
-
-	return 0;
+	return drm_mode_config_create_initial_state(drm);
 }
 

-- 
2.55.0


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

* [PATCH 02/83] drm/amdgpu: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
  (?)
  (?)
@ 2026-11-05 14:07 ` Maxime Ripard
  -1 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:07 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: Christian König, Alex Deucher, amd-gfx

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

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                              | 4 +++-
 .../gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_connector_test.c    | 3 ++-
 .../gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_mst_types_test.c    | 4 +++-
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c
index 5c7e2172a372..1f8b531eb946 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c
@@ -362,5 +362,7 @@ static int amdgpu_vkms_output_init(struct drm_device *dev, struct
 	}
 
-	drm_mode_config_reset(dev);
+	ret = drm_mode_config_create_initial_state(dev);
+	if (ret)
+		goto err_attach;
 
 	return 0;
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 009a017194e3..7966690dca96 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
@@ -9966,5 +9966,6 @@ dm_test_force_ctx_alloc(struct kunit *test, const struct drm_connector_funcs *fu
 	ctx->aconnector->base.encoder = encoder;
 
-	drm_mode_config_reset(ctx->drm);
+	KUNIT_ASSERT_EQ(test,
+			drm_mode_config_create_initial_state(ctx->drm), 0);
 
 	drm_modeset_acquire_init(&ctx->acquire_ctx, 0);
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 8c3e32f40a96..c9fa8308d254 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
@@ -3794,5 +3794,7 @@ dm_mst_test_alloc_dsc_link_ctx(struct kunit *test, int total_avail_slots)
 					    &dm_mst_test_dsc_link_conn_funcs,
 					    DRM_MODE_CONNECTOR_DisplayPort, NULL), 0);
-	drm_mode_config_reset(ctx->drm);
+
+	KUNIT_ASSERT_EQ(test,
+			drm_mode_config_create_initial_state(ctx->drm), 0);
 
 	KUNIT_ASSERT_EQ(test,

-- 
2.55.0


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

* [PATCH 11/83] drm/exynos: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
                   ` (2 preceding siblings ...)
  (?)
@ 2026-11-05 14:07 ` Maxime Ripard
  -1 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:07 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Alim Akhtar, Inki Dae, Krzysztof Kozlowski, Kyungmin Park,
	Peter Griffin, Seung-Woo Kim, linux-samsung-soc

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

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_drv.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
index 9ee30086879f..712e5ac86f50 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
@@ -278,5 +278,7 @@ static int exynos_drm_bind(struct device *dev)
 		goto err_unbind_all;
 
-	drm_mode_config_reset(drm);
+	ret = drm_mode_config_create_initial_state(drm);
+	if (ret)
+		goto err_unbind_all;
 
 	/* init kms poll for handling hpd */

-- 
2.55.0


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

* [PATCH 16/83] drm/hyperv: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
                   ` (3 preceding siblings ...)
  (?)
@ 2026-11-05 14:07 ` Maxime Ripard
  -1 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:07 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: Dexuan Cui, Long Li, Saurabh Sengar, linux-hyperv

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

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 | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/hyperv/hyperv_drm_modeset.c b/drivers/gpu/drm/hyperv/hyperv_drm_modeset.c
index da399cb951a5..64715cc8bdee 100644
--- a/drivers/gpu/drm/hyperv/hyperv_drm_modeset.c
+++ b/drivers/gpu/drm/hyperv/hyperv_drm_modeset.c
@@ -337,6 +337,4 @@ int hv_drm_mode_config_init(struct hv_drm_device *hv)
 		return ret;
 
-	drm_mode_config_reset(dev);
-
-	return 0;
+	return drm_mode_config_create_initial_state(dev);
 }

-- 
2.55.0


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

* [PATCH 17/83] drm/imx/dc: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
                   ` (4 preceding siblings ...)
  (?)
@ 2026-11-05 14:07 ` Maxime Ripard
  -1 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:07 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Fabio Estevam, Frank Li, Liu Ying, Pengutronix Kernel Team,
	Sascha Hauer, imx

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Frank Li <Frank.Li@nxp.com>
Cc: Liu Ying <victor.liu@nxp.com>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: imx@lists.linux.dev
---
 drivers/gpu/drm/imx/dc/dc-kms.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/imx/dc/dc-kms.c b/drivers/gpu/drm/imx/dc/dc-kms.c
index 0e2ce6a42548..7e29b51e58fc 100644
--- a/drivers/gpu/drm/imx/dc/dc-kms.c
+++ b/drivers/gpu/drm/imx/dc/dc-kms.c
@@ -130,5 +130,7 @@ int dc_kms_init(struct dc_drm_device *dc_drm)
 	}
 
-	drm_mode_config_reset(drm);
+	ret = drm_mode_config_create_initial_state(drm);
+	if (ret)
+		return ret;
 
 	drm_kms_helper_poll_init(drm);

-- 
2.55.0


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

* [PATCH 18/83] drm/imx/dcss: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
                   ` (5 preceding siblings ...)
  (?)
@ 2026-11-05 14:07 ` Maxime Ripard
  2026-11-05 14:59   ` Laurentiu Palcu
  -1 siblings, 1 reply; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:07 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Fabio Estevam, Frank Li, Laurentiu Palcu, Lucas Stach,
	Pengutronix Kernel Team, Sascha Hauer, imx

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Frank Li <Frank.Li@nxp.com>
Cc: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
Cc: Lucas Stach <l.stach@pengutronix.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: imx@lists.linux.dev
---
 drivers/gpu/drm/imx/dcss/dcss-kms.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/imx/dcss/dcss-kms.c b/drivers/gpu/drm/imx/dcss/dcss-kms.c
index 7c5a6e2bc89a..92ac29960e48 100644
--- a/drivers/gpu/drm/imx/dcss/dcss-kms.c
+++ b/drivers/gpu/drm/imx/dcss/dcss-kms.c
@@ -142,5 +142,7 @@ struct dcss_kms_dev *dcss_kms_attach(struct dcss_dev *dcss)
 		goto cleanup_mode_config;
 
-	drm_mode_config_reset(drm);
+	ret = drm_mode_config_create_initial_state(drm);
+	if (ret)
+		goto cleanup_crtc;
 
 	drm_kms_helper_poll_init(drm);

-- 
2.55.0


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

* [PATCH 19/83] drm/imx/ipuv3: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
                   ` (6 preceding siblings ...)
  (?)
@ 2026-11-05 14:07 ` Maxime Ripard
  -1 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:07 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Fabio Estevam, Frank Li, Pengutronix Kernel Team, Philipp Zabel,
	Sascha Hauer, imx

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

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-drm-core.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c b/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c
index 51a0ec043248..b7b6ae8f9578 100644
--- a/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c
+++ b/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c
@@ -245,5 +245,7 @@ static int imx_drm_bind(struct device *dev)
 		goto err_kms;
 
-	drm_mode_config_reset(drm);
+	ret = drm_mode_config_create_initial_state(drm);
+	if (ret)
+		goto err_poll_fini;
 
 	/*

-- 
2.55.0


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

* [PATCH 20/83] drm/ingenic: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
                   ` (7 preceding siblings ...)
  (?)
@ 2026-11-05 14:07 ` Maxime Ripard
  -1 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:07 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: Paul Cercueil, linux-mips

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Paul Cercueil <paul@crapouillou.net>
Cc: linux-mips@vger.kernel.org
---
 drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
index 625ec76cf04d..63198fd59498 100644
--- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
+++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
@@ -1355,5 +1355,7 @@ static int ingenic_drm_bind(struct device *dev, bool has_components)
 	}
 
-	drm_mode_config_reset(drm);
+	ret = drm_mode_config_create_initial_state(drm);
+	if (ret)
+		goto err_drvdata;
 
 	ret = clk_prepare_enable(priv->pix_clk);

-- 
2.55.0


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

* [PATCH 26/83] drm/meson: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
                   ` (8 preceding siblings ...)
  (?)
@ 2026-11-05 14:07 ` Maxime Ripard
  -1 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:07 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Jerome Brunet, Kevin Hilman, Martin Blumenstingl, linux-amlogic

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

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_drv.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
index 49ff9f1f16d3..dda2dc2d5b00 100644
--- a/drivers/gpu/drm/meson/meson_drv.c
+++ b/drivers/gpu/drm/meson/meson_drv.c
@@ -345,5 +345,7 @@ static int meson_drv_bind_master(struct device *dev, bool has_components)
 		goto exit_afbcd;
 
-	drm_mode_config_reset(drm);
+	ret = drm_mode_config_create_initial_state(drm);
+	if (ret)
+		goto uninstall_irq;
 
 	drm_kms_helper_poll_init(drm);

-- 
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] 28+ messages in thread

* [PATCH 28/83] drm/msm: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
                   ` (9 preceding siblings ...)
  (?)
@ 2026-11-05 14:07 ` Maxime Ripard
  -1 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:07 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Abhinav Kumar, Dmitry Baryshkov, Jessica Zhang, Marijn Suijten,
	Rob Clark, Sean Paul, freedreno, linux-arm-msm

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

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/msm_kms.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/msm/msm_kms.c b/drivers/gpu/drm/msm/msm_kms.c
index e5d0ea629448..9592fa28c85b 100644
--- a/drivers/gpu/drm/msm/msm_kms.c
+++ b/drivers/gpu/drm/msm/msm_kms.c
@@ -332,5 +332,7 @@ int msm_drm_kms_init(struct device *dev, const struct drm_driver *drv)
 	}
 
-	drm_mode_config_reset(ddev);
+	ret = drm_mode_config_create_initial_state(ddev);
+	if (ret)
+		goto err_msm_uninit;
 
 	return 0;

-- 
2.55.0


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

* [PATCH 29/83] drm/lcdif: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
                   ` (10 preceding siblings ...)
  (?)
@ 2026-11-05 14:07 ` Maxime Ripard
  -1 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:07 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Fabio Estevam, Frank Li, Marek Vasut, Pengutronix Kernel Team,
	Sascha Hauer, Stefan Agner, imx

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Frank Li <Frank.Li@nxp.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Stefan Agner <stefan@agner.ch>
Cc: imx@lists.linux.dev
---
 drivers/gpu/drm/mxsfb/lcdif_drv.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/mxsfb/lcdif_drv.c b/drivers/gpu/drm/mxsfb/lcdif_drv.c
index e2173c4d6fc2..12d844b282dc 100644
--- a/drivers/gpu/drm/mxsfb/lcdif_drv.c
+++ b/drivers/gpu/drm/mxsfb/lcdif_drv.c
@@ -196,5 +196,7 @@ static int lcdif_load(struct drm_device *drm)
 	drm->mode_config.helper_private	= &lcdif_mode_config_helpers;
 
-	drm_mode_config_reset(drm);
+	ret = drm_mode_config_create_initial_state(drm);
+	if (ret)
+		return ret;
 
 	ret = platform_get_irq(pdev, 0);

-- 
2.55.0


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

* [PATCH 30/83] drm/mxsfb: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
                   ` (11 preceding siblings ...)
  (?)
@ 2026-11-05 14:07 ` Maxime Ripard
  -1 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:07 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Fabio Estevam, Frank Li, Marek Vasut, Pengutronix Kernel Team,
	Sascha Hauer, Stefan Agner, imx

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Frank Li <Frank.Li@nxp.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Stefan Agner <stefan@agner.ch>
Cc: imx@lists.linux.dev
---
 drivers/gpu/drm/mxsfb/mxsfb_drv.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
index 641691fc92c8..04ac1c06f435 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
@@ -323,5 +323,7 @@ static int mxsfb_load(struct drm_device *drm,
 	drm->mode_config.helper_private	= &mxsfb_mode_config_helpers;
 
-	drm_mode_config_reset(drm);
+	ret = drm_mode_config_create_initial_state(drm);
+	if (ret)
+		goto err_vblank;
 
 	ret = platform_get_irq(pdev, 0);

-- 
2.55.0


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

* [PATCH 31/83] drm/nouveau: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
                   ` (12 preceding siblings ...)
  (?)
@ 2026-11-05 14:07 ` Maxime Ripard
  -1 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:07 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: Danilo Krummrich, nouveau

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

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/nouveau_display.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
index d71dcfc6ee66..da07acea6a41 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.c
+++ b/drivers/gpu/drm/nouveau/nouveau_display.c
@@ -711,5 +711,7 @@ nouveau_display_create(struct drm_device *dev)
 		goto disp_create_err;
 
-	drm_mode_config_reset(dev);
+	ret = drm_mode_config_create_initial_state(dev);
+	if (ret)
+		goto vblank_err;
 
 	if (dev->mode_config.num_crtc) {

-- 
2.55.0


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

* [PATCH 34/83] drm/qxl: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
                   ` (13 preceding siblings ...)
  (?)
@ 2026-11-05 14:07 ` Maxime Ripard
  -1 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:07 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: Dave Airlie, Gerd Hoffmann, spice-devel, virtualization

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

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 | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c
index 204c47d61373..7f719e200d31 100644
--- a/drivers/gpu/drm/qxl/qxl_display.c
+++ b/drivers/gpu/drm/qxl/qxl_display.c
@@ -1313,6 +1313,5 @@ int qxl_modeset_init(struct qxl_device *qdev)
 		return ret;
 
-	drm_mode_config_reset(&qdev->ddev);
-	return 0;
+	return drm_mode_config_create_initial_state(&qdev->ddev);
 }
 

-- 
2.55.0


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

* [PATCH 35/83] drm/rcar-du: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
                   ` (14 preceding siblings ...)
  (?)
@ 2026-11-05 14:07 ` Maxime Ripard
  -1 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:07 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Geert Uytterhoeven, Kieran Bingham, Laurent Pinchart, Magnus Damm,
	Tomi Valkeinen, linux-renesas-soc

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

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_kms.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
index 9228a7ad0dfa..7fddde804dc6 100644
--- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
+++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
@@ -1003,5 +1003,7 @@ int rcar_du_modeset_init(struct rcar_du_device *rcdu)
 	rcdu->dpad0_source = ffs(dpad0_sources) - 1;
 
-	drm_mode_config_reset(dev);
+	ret = drm_mode_config_create_initial_state(dev);
+	if (ret)
+		return ret;
 
 	drm_kms_helper_poll_init(dev);

-- 
2.55.0


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

* [PATCH 36/83] drm/rz-du: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
                   ` (15 preceding siblings ...)
  (?)
@ 2026-11-05 14:07 ` Maxime Ripard
  2026-11-06 10:22   ` Biju Das
  -1 siblings, 1 reply; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:07 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: Biju Das, linux-renesas-soc

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: Biju Das <biju.das.jz@bp.renesas.com>
Cc: linux-renesas-soc@vger.kernel.org
---
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
index 87f171145a23..07171f2f3052 100644
--- a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
+++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
@@ -472,5 +472,7 @@ int rzg2l_du_modeset_init(struct rzg2l_du_device *rcdu)
 	}
 
-	drm_mode_config_reset(dev);
+	ret = drm_mode_config_create_initial_state(dev);
+	if (ret)
+		return ret;
 
 	drm_kms_helper_poll_init(dev);

-- 
2.55.0


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

* [PATCH 37/83] drm/shmobile: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
                   ` (16 preceding siblings ...)
  (?)
@ 2026-11-05 14:07 ` Maxime Ripard
  -1 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:07 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: Geert Uytterhoeven, linux-renesas-soc

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

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_kms.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c
index fd9460da1789..4d3a714e255d 100644
--- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c
+++ b/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c
@@ -176,5 +176,7 @@ int shmob_drm_modeset_init(struct shmob_drm_device *sdev)
 		return ret;
 
-	drm_mode_config_reset(dev);
+	ret = drm_mode_config_create_initial_state(dev);
+	if (ret)
+		return ret;
 
 	drm_kms_helper_poll_init(dev);

-- 
2.55.0


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

* [PATCH 38/83] drm/rockchip: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
                   ` (17 preceding siblings ...)
  (?)
@ 2026-11-05 14:07 ` Maxime Ripard
  -1 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:07 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: Heiko Stübner, Sandy Huang, linux-rockchip, Andy Yan

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Cc: "Heiko Stübner" <heiko@sntech.de>
Cc: Andy Yan <andy.yan@rock-chips.com>
Cc: Sandy Huang <hjc@rock-chips.com>
Cc: linux-rockchip@lists.infradead.org
---
 drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
index 3099408e9d05..1fc6134f6900 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
@@ -191,5 +191,7 @@ static int rockchip_drm_bind(struct device *dev)
 		goto err_iommu_cleanup;
 
-	drm_mode_config_reset(drm_dev);
+	ret = drm_mode_config_create_initial_state(drm_dev);
+	if (ret)
+		goto err_iommu_cleanup;
 
 	/* init kms poll for handling hpd */

-- 
2.55.0


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

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

* [PATCH 47/83] drm/sun4i: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
                   ` (18 preceding siblings ...)
  (?)
@ 2026-11-05 14:08 ` Maxime Ripard
  2026-11-05 15:28   ` Chen-Yu Tsai
  -1 siblings, 1 reply; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:08 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: Chen-Yu Tsai, Samuel Holland, linux-sunxi

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_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_framebuffer.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/sun4i/sun4i_framebuffer.c b/drivers/gpu/drm/sun4i/sun4i_framebuffer.c
index fc822bc2c62b..0ce3691dedad 100644
--- a/drivers/gpu/drm/sun4i/sun4i_framebuffer.c
+++ b/drivers/gpu/drm/sun4i/sun4i_framebuffer.c
@@ -11,4 +11,5 @@
 #include <drm/drm_blend.h>
 #include <drm/drm_gem_framebuffer_helper.h>
+#include <drm/drm_print.h>
 
 #include "sun4i_drv.h"
@@ -27,5 +28,6 @@ static const struct drm_mode_config_helper_funcs sun4i_de_mode_config_helpers =
 void sun4i_framebuffer_init(struct drm_device *drm)
 {
-	drm_mode_config_reset(drm);
+	drm_WARN(drm, drm_mode_config_create_initial_state(drm),
+		 "Failed to create state\n");
 
 	drm->mode_config.max_width = 8192;

-- 
2.55.0


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

* [PATCH 53/83] drm/tegra: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
                   ` (19 preceding siblings ...)
  (?)
@ 2026-11-05 14:08 ` Maxime Ripard
  -1 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:08 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Jonathan Hunter, Mikko Perttunen, Thierry Reding, linux-tegra

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

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/drm.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c
index 324480c87fb1..9fdb9e70eb0a 100644
--- a/drivers/gpu/drm/tegra/drm.c
+++ b/drivers/gpu/drm/tegra/drm.c
@@ -1246,5 +1246,7 @@ static int host1x_drm_probe(struct host1x_device *dev)
 		goto hub;
 
-	drm_mode_config_reset(drm);
+	err = drm_mode_config_create_initial_state(drm);
+	if (err)
+		goto hub;
 
 	/*

-- 
2.55.0


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

* [PATCH 61/83] drm/bochs: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
                   ` (20 preceding siblings ...)
  (?)
@ 2026-11-05 14:08 ` Maxime Ripard
  -1 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:08 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: Gerd Hoffmann, virtualization

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

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 | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/tiny/bochs.c b/drivers/gpu/drm/tiny/bochs.c
index 771d59b92f67..c24adbcb77a3 100644
--- a/drivers/gpu/drm/tiny/bochs.c
+++ b/drivers/gpu/drm/tiny/bochs.c
@@ -684,7 +684,5 @@ static int bochs_kms_init(struct bochs_device *bochs)
 		return ret;
 
-	drm_mode_config_reset(dev);
-
-	return 0;
+	return drm_mode_config_create_initial_state(dev);
 }
 

-- 
2.55.0


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

* [PATCH 62/83] drm/cirrus-qemu: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
                   ` (21 preceding siblings ...)
  (?)
@ 2026-11-05 14:08 ` Maxime Ripard
  -1 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:08 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: Dave Airlie, Gerd Hoffmann, virtualization

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

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 | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/tiny/cirrus-qemu.c b/drivers/gpu/drm/tiny/cirrus-qemu.c
index 9e3051b9c3f7..98664f573ff8 100644
--- a/drivers/gpu/drm/tiny/cirrus-qemu.c
+++ b/drivers/gpu/drm/tiny/cirrus-qemu.c
@@ -624,5 +624,7 @@ static int cirrus_pci_probe(struct pci_dev *pdev,
 		return ret;
 
-	drm_mode_config_reset(dev);
+	ret = drm_mode_config_create_initial_state(dev);
+	if (ret)
+		return ret;
 
 	pci_set_drvdata(pdev, dev);

-- 
2.55.0


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

* [PATCH 79/83] drm/virtio: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` Maxime Ripard
                   ` (22 preceding siblings ...)
  (?)
@ 2026-11-05 14:08 ` Maxime Ripard
  -1 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2026-11-05 14:08 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Chia-I Wu, David Airlie, Dmitry Osipenko, Gerd Hoffmann,
	Gurchetan Singh, virtualization

drm_mode_config_reset() has a dual role: it creates the initial KMS
state at probe time, and resets hardware and software state during
suspend/resume cycles.

Since the two roles need different behaviors (notably for objects like
drm_private_obj that must persist across suspend/resume),
drm_mode_config_create_initial_state() was introduced to handle only
the initial state creation at probe time.

Switch to drm_mode_config_create_initial_state().

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 | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
index f0ed9bd27a91..dfc3aed03b8e 100644
--- a/drivers/gpu/drm/virtio/virtgpu_display.c
+++ b/drivers/gpu/drm/virtio/virtgpu_display.c
@@ -397,6 +397,5 @@ int virtio_gpu_modeset_init(struct virtio_gpu_device *vgdev)
 		return ret;
 
-	drm_mode_config_reset(vgdev->ddev);
-	return 0;
+	return drm_mode_config_create_initial_state(vgdev->ddev);
 }
 

-- 
2.55.0


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

* Re: [PATCH 18/83] drm/imx/dcss: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` [PATCH 18/83] drm/imx/dcss: " Maxime Ripard
@ 2026-11-05 14:59   ` Laurentiu Palcu
  0 siblings, 0 replies; 28+ messages in thread
From: Laurentiu Palcu @ 2026-11-05 14:59 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Fabio Estevam, Frank Li, Lucas Stach, Pengutronix Kernel Team,
	Sascha Hauer, imx

On Thu, Nov 05, 2026 at 03:07:35PM +0100, Maxime Ripard wrote:
> drm_mode_config_reset() has a dual role: it creates the initial KMS
> state at probe time, and resets hardware and software state during
> suspend/resume cycles.
> 
> Since the two roles need different behaviors (notably for objects like
> drm_private_obj that must persist across suspend/resume),
> drm_mode_config_create_initial_state() was introduced to handle only
> the initial state creation at probe time.
> 
> Switch to drm_mode_config_create_initial_state().
> 
> Signed-off-by: Maxime Ripard <mripard@kernel.org>

Reviewed-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>

-- 
Thanks,
Laurentiu

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

* Re: [PATCH 47/83] drm/sun4i: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:08 ` [PATCH 47/83] drm/sun4i: " Maxime Ripard
@ 2026-11-05 15:28   ` Chen-Yu Tsai
  0 siblings, 0 replies; 28+ messages in thread
From: Chen-Yu Tsai @ 2026-11-05 15:28 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: Samuel Holland, linux-sunxi

On Thu, Nov 5, 2026 at 10:10 PM Maxime Ripard <mripard@kernel.org> wrote:
>
> drm_mode_config_reset() has a dual role: it creates the initial KMS
> state at probe time, and resets hardware and software state during
> suspend/resume cycles.
>
> Since the two roles need different behaviors (notably for objects like
> drm_private_obj that must persist across suspend/resume),
> drm_mode_config_create_initial_state() was introduced to handle only
> the initial state creation at probe time.
>
> Switch to drm_mode_config_create_initial_state().
>
> Signed-off-by: Maxime Ripard <mripard@kernel.org>

Acked-by: Chen-Yu Tsai <wens@kernel.org>

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

* RE: [PATCH 36/83] drm/rz-du: Switch to drm_mode_config_create_initial_state
  2026-11-05 14:07 ` [PATCH 36/83] drm/rz-du: " Maxime Ripard
@ 2026-11-06 10:22   ` Biju Das
  0 siblings, 0 replies; 28+ messages in thread
From: Biju Das @ 2026-11-06 10:22 UTC (permalink / raw)
  To: Maxime Ripard; +Cc: linux-renesas-soc@vger.kernel.org

Hi Maxime,

> -----Original Message-----
> From: Maxime Ripard <mripard@kernel.org>
> Sent: 05 November 2026 14:08
> Subject: [PATCH 36/83] drm/rz-du: Switch to drm_mode_config_create_initial_state
> 
> drm_mode_config_reset() has a dual role: it creates the initial KMS state at probe time, and resets
> hardware and software state during suspend/resume cycles.
> 
> Since the two roles need different behaviors (notably for objects like drm_private_obj that must
> persist across suspend/resume),
> drm_mode_config_create_initial_state() was introduced to handle only the initial state creation at
> probe time.
> 
> Switch to drm_mode_config_create_initial_state().
> 
> Signed-off-by: Maxime Ripard <mripard@kernel.org>

Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>

Cheers,
Biju

> ---
> Cc: Biju Das <biju.das.jz@bp.renesas.com>
> Cc: linux-renesas-soc@vger.kernel.org
> ---
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c b/drivers/gpu/drm/renesas/rz-
> du/rzg2l_du_kms.c
> index 87f171145a23..07171f2f3052 100644
> --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
> +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
> @@ -472,5 +472,7 @@ int rzg2l_du_modeset_init(struct rzg2l_du_device *rcdu)
>  	}
> 
> -	drm_mode_config_reset(dev);
> +	ret = drm_mode_config_create_initial_state(dev);
> +	if (ret)
> +		return ret;
> 
>  	drm_kms_helper_poll_init(dev);
> 
> --
> 2.55.0


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

end of thread, other threads:[~2026-11-06 10:22 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-05 14:07 [PATCH 00/83] drm: Switch drivers to drm_mode_config_create_initial_state Maxime Ripard
2026-11-05 14:07 ` Maxime Ripard
2026-11-05 14:07 ` [PATCH 01/83] drm/adp: Switch " Maxime Ripard
2026-11-05 14:07 ` [PATCH 02/83] drm/amdgpu: " Maxime Ripard
2026-11-05 14:07 ` [PATCH 11/83] drm/exynos: " Maxime Ripard
2026-11-05 14:07 ` [PATCH 16/83] drm/hyperv: " Maxime Ripard
2026-11-05 14:07 ` [PATCH 17/83] drm/imx/dc: " Maxime Ripard
2026-11-05 14:07 ` [PATCH 18/83] drm/imx/dcss: " Maxime Ripard
2026-11-05 14:59   ` Laurentiu Palcu
2026-11-05 14:07 ` [PATCH 19/83] drm/imx/ipuv3: " Maxime Ripard
2026-11-05 14:07 ` [PATCH 20/83] drm/ingenic: " Maxime Ripard
2026-11-05 14:07 ` [PATCH 26/83] drm/meson: " Maxime Ripard
2026-11-05 14:07 ` [PATCH 28/83] drm/msm: " Maxime Ripard
2026-11-05 14:07 ` [PATCH 29/83] drm/lcdif: " Maxime Ripard
2026-11-05 14:07 ` [PATCH 30/83] drm/mxsfb: " Maxime Ripard
2026-11-05 14:07 ` [PATCH 31/83] drm/nouveau: " Maxime Ripard
2026-11-05 14:07 ` [PATCH 34/83] drm/qxl: " Maxime Ripard
2026-11-05 14:07 ` [PATCH 35/83] drm/rcar-du: " Maxime Ripard
2026-11-05 14:07 ` [PATCH 36/83] drm/rz-du: " Maxime Ripard
2026-11-06 10:22   ` Biju Das
2026-11-05 14:07 ` [PATCH 37/83] drm/shmobile: " Maxime Ripard
2026-11-05 14:07 ` [PATCH 38/83] drm/rockchip: " Maxime Ripard
2026-11-05 14:08 ` [PATCH 47/83] drm/sun4i: " Maxime Ripard
2026-11-05 15:28   ` Chen-Yu Tsai
2026-11-05 14:08 ` [PATCH 53/83] drm/tegra: " Maxime Ripard
2026-11-05 14:08 ` [PATCH 61/83] drm/bochs: " Maxime Ripard
2026-11-05 14:08 ` [PATCH 62/83] drm/cirrus-qemu: " Maxime Ripard
2026-11-05 14:08 ` [PATCH 79/83] drm/virtio: " 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.