Linux kernel and device drivers for NXP i.MX platforms
 help / color / mirror / Atom feed
* [PATCH RESEND 00/83] drm: Switch drivers to drm_mode_config_create_initial_state
@ 2026-11-05 15:29 Maxime Ripard
  2026-11-05 15:29 ` [PATCH RESEND 17/83] drm/imx/dc: Switch " Maxime Ripard
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:29 UTC (permalink / raw)
  To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
  Cc: Maxime Ripard, dri-devel, 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,
-----BEGIN PGP SIGNATURE-----

iJUEABMJAB0WIQTkHFbLp4ejekA/qfgnX84Zoj2+dgUCauyPHAAKCRAnX84Zoj2+
dkwsAX9NFbbJHCN9xg2CeHNoUE2b74hoQ5+vO2GWUoHj4SnPtC+G3wjjcqEZiRKZ
xMEy+OMBgLIpXnrk4sqLj7r+OWFunhZwYsLromcY/UpASSNAT98Hro2QnIUo8S4f
xStpohEISg==
=9Kfg
-----END PGP SIGNATURE-----
-- 
Maxime Ripard <mripard@kernel.org>


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

* [PATCH RESEND 17/83] drm/imx/dc: Switch to drm_mode_config_create_initial_state
  2026-11-05 15:29 [PATCH RESEND 00/83] drm: Switch drivers to drm_mode_config_create_initial_state Maxime Ripard
@ 2026-11-05 15:29 ` Maxime Ripard
  2026-11-10  8:35   ` Liu Ying
  2026-11-05 15:29 ` [PATCH RESEND 18/83] drm/imx/dcss: " Maxime Ripard
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 10+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:29 UTC (permalink / raw)
  To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
  Cc: Maxime Ripard, dri-devel, 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] 10+ messages in thread

* [PATCH RESEND 18/83] drm/imx/dcss: Switch to drm_mode_config_create_initial_state
  2026-11-05 15:29 [PATCH RESEND 00/83] drm: Switch drivers to drm_mode_config_create_initial_state Maxime Ripard
  2026-11-05 15:29 ` [PATCH RESEND 17/83] drm/imx/dc: Switch " Maxime Ripard
@ 2026-11-05 15:29 ` Maxime Ripard
  2026-11-09 14:15   ` Laurentiu Palcu
  2026-11-05 15:29 ` [PATCH RESEND 19/83] drm/imx/ipuv3: " Maxime Ripard
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 10+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:29 UTC (permalink / raw)
  To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
  Cc: Maxime Ripard, dri-devel, 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] 10+ messages in thread

* [PATCH RESEND 19/83] drm/imx/ipuv3: Switch to drm_mode_config_create_initial_state
  2026-11-05 15:29 [PATCH RESEND 00/83] drm: Switch drivers to drm_mode_config_create_initial_state Maxime Ripard
  2026-11-05 15:29 ` [PATCH RESEND 17/83] drm/imx/dc: Switch " Maxime Ripard
  2026-11-05 15:29 ` [PATCH RESEND 18/83] drm/imx/dcss: " Maxime Ripard
@ 2026-11-05 15:29 ` Maxime Ripard
  2026-11-05 15:29 ` [PATCH RESEND 29/83] drm/lcdif: " Maxime Ripard
  2026-11-05 15:29 ` [PATCH RESEND 30/83] drm/mxsfb: " Maxime Ripard
  4 siblings, 0 replies; 10+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:29 UTC (permalink / raw)
  To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
  Cc: Maxime Ripard, dri-devel, 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] 10+ messages in thread

* [PATCH RESEND 29/83] drm/lcdif: Switch to drm_mode_config_create_initial_state
  2026-11-05 15:29 [PATCH RESEND 00/83] drm: Switch drivers to drm_mode_config_create_initial_state Maxime Ripard
                   ` (2 preceding siblings ...)
  2026-11-05 15:29 ` [PATCH RESEND 19/83] drm/imx/ipuv3: " Maxime Ripard
@ 2026-11-05 15:29 ` Maxime Ripard
  2026-11-09 14:19   ` Laurentiu Palcu
  2026-11-05 15:29 ` [PATCH RESEND 30/83] drm/mxsfb: " Maxime Ripard
  4 siblings, 1 reply; 10+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:29 UTC (permalink / raw)
  To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
  Cc: Maxime Ripard, dri-devel, 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] 10+ messages in thread

* [PATCH RESEND 30/83] drm/mxsfb: Switch to drm_mode_config_create_initial_state
  2026-11-05 15:29 [PATCH RESEND 00/83] drm: Switch drivers to drm_mode_config_create_initial_state Maxime Ripard
                   ` (3 preceding siblings ...)
  2026-11-05 15:29 ` [PATCH RESEND 29/83] drm/lcdif: " Maxime Ripard
@ 2026-11-05 15:29 ` Maxime Ripard
  2026-11-09 14:20   ` Laurentiu Palcu
  4 siblings, 1 reply; 10+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:29 UTC (permalink / raw)
  To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
  Cc: Maxime Ripard, dri-devel, 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] 10+ messages in thread

* Re: [PATCH RESEND 18/83] drm/imx/dcss: Switch to drm_mode_config_create_initial_state
  2026-11-05 15:29 ` [PATCH RESEND 18/83] drm/imx/dcss: " Maxime Ripard
@ 2026-11-09 14:15   ` Laurentiu Palcu
  0 siblings, 0 replies; 10+ messages in thread
From: Laurentiu Palcu @ 2026-11-09 14:15 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann,
	dri-devel, Fabio Estevam, Frank Li, Lucas Stach,
	Pengutronix Kernel Team, Sascha Hauer, imx

On Thu, Nov 05, 2026 at 04:29:27PM +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>

I think I already gave my r-b tag on this before the resend... Anyway,

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

> ---
> 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
> 

-- 
Thanks,
Laurentiu

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

* Re: [PATCH RESEND 29/83] drm/lcdif: Switch to drm_mode_config_create_initial_state
  2026-11-05 15:29 ` [PATCH RESEND 29/83] drm/lcdif: " Maxime Ripard
@ 2026-11-09 14:19   ` Laurentiu Palcu
  0 siblings, 0 replies; 10+ messages in thread
From: Laurentiu Palcu @ 2026-11-09 14:19 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann,
	dri-devel, Fabio Estevam, Frank Li, Marek Vasut,
	Pengutronix Kernel Team, Sascha Hauer, Stefan Agner, imx

On Thu, Nov 05, 2026 at 04:29:38PM +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>

> ---
> 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
> 

-- 
Thanks,
Laurentiu

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

* Re: [PATCH RESEND 30/83] drm/mxsfb: Switch to drm_mode_config_create_initial_state
  2026-11-05 15:29 ` [PATCH RESEND 30/83] drm/mxsfb: " Maxime Ripard
@ 2026-11-09 14:20   ` Laurentiu Palcu
  0 siblings, 0 replies; 10+ messages in thread
From: Laurentiu Palcu @ 2026-11-09 14:20 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann,
	dri-devel, Fabio Estevam, Frank Li, Marek Vasut,
	Pengutronix Kernel Team, Sascha Hauer, Stefan Agner, imx

On Thu, Nov 05, 2026 at 04:29:39PM +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>

> ---
> 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
> 

-- 
Thanks,
Laurentiu

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

* Re: [PATCH RESEND 17/83] drm/imx/dc: Switch to drm_mode_config_create_initial_state
  2026-11-05 15:29 ` [PATCH RESEND 17/83] drm/imx/dc: Switch " Maxime Ripard
@ 2026-11-10  8:35   ` Liu Ying
  0 siblings, 0 replies; 10+ messages in thread
From: Liu Ying @ 2026-11-10  8:35 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann,
	dri-devel, Fabio Estevam, Frank Li, Pengutronix Kernel Team,
	Sascha Hauer, imx

On Thu, Nov 05, 2026 at 04:29:26PM +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>
> ---
> 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(-)

Reviewed-by: Liu Ying <victor.liu@nxp.com>

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

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

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-05 15:29 [PATCH RESEND 00/83] drm: Switch drivers to drm_mode_config_create_initial_state Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 17/83] drm/imx/dc: Switch " Maxime Ripard
2026-11-10  8:35   ` Liu Ying
2026-11-05 15:29 ` [PATCH RESEND 18/83] drm/imx/dcss: " Maxime Ripard
2026-11-09 14:15   ` Laurentiu Palcu
2026-11-05 15:29 ` [PATCH RESEND 19/83] drm/imx/ipuv3: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 29/83] drm/lcdif: " Maxime Ripard
2026-11-09 14:19   ` Laurentiu Palcu
2026-11-05 15:29 ` [PATCH RESEND 30/83] drm/mxsfb: " Maxime Ripard
2026-11-09 14:20   ` Laurentiu Palcu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox