* [PATCH 00/83] drm: Switch drivers to drm_mode_config_create_initial_state
@ 2026-11-05 14:07 Maxime Ripard
2026-11-05 14:07 ` [PATCH 17/83] drm/imx/dc: Switch " Maxime Ripard
` (4 more replies)
0 siblings, 5 replies; 7+ 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] 7+ messages in thread
* [PATCH 17/83] drm/imx/dc: Switch to drm_mode_config_create_initial_state
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 18/83] drm/imx/dcss: " Maxime Ripard
` (3 subsequent siblings)
4 siblings, 0 replies; 7+ 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] 7+ messages in thread
* [PATCH 18/83] drm/imx/dcss: Switch to drm_mode_config_create_initial_state
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 ` [PATCH 17/83] drm/imx/dc: Switch " Maxime Ripard
@ 2026-11-05 14:07 ` Maxime Ripard
2026-11-05 14:59 ` Laurentiu Palcu
2026-11-05 14:07 ` [PATCH 19/83] drm/imx/ipuv3: " Maxime Ripard
` (2 subsequent siblings)
4 siblings, 1 reply; 7+ 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] 7+ messages in thread
* [PATCH 19/83] drm/imx/ipuv3: Switch to drm_mode_config_create_initial_state
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 ` [PATCH 17/83] drm/imx/dc: Switch " Maxime Ripard
2026-11-05 14:07 ` [PATCH 18/83] drm/imx/dcss: " Maxime Ripard
@ 2026-11-05 14:07 ` 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
4 siblings, 0 replies; 7+ 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] 7+ messages in thread
* [PATCH 29/83] drm/lcdif: Switch to drm_mode_config_create_initial_state
2026-11-05 14:07 [PATCH 00/83] drm: Switch drivers to drm_mode_config_create_initial_state Maxime Ripard
` (2 preceding siblings ...)
2026-11-05 14:07 ` [PATCH 19/83] drm/imx/ipuv3: " Maxime Ripard
@ 2026-11-05 14:07 ` Maxime Ripard
2026-11-05 14:07 ` [PATCH 30/83] drm/mxsfb: " Maxime Ripard
4 siblings, 0 replies; 7+ 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] 7+ messages in thread
* [PATCH 30/83] drm/mxsfb: Switch to drm_mode_config_create_initial_state
2026-11-05 14:07 [PATCH 00/83] drm: Switch drivers to drm_mode_config_create_initial_state Maxime Ripard
` (3 preceding siblings ...)
2026-11-05 14:07 ` [PATCH 29/83] drm/lcdif: " Maxime Ripard
@ 2026-11-05 14:07 ` Maxime Ripard
4 siblings, 0 replies; 7+ 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] 7+ 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; 7+ 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] 7+ messages in thread
end of thread, other threads:[~2026-11-05 14:59 UTC | newest]
Thread overview: 7+ 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 ` [PATCH 17/83] drm/imx/dc: Switch " 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 29/83] drm/lcdif: " Maxime Ripard
2026-11-05 14:07 ` [PATCH 30/83] drm/mxsfb: " Maxime Ripard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox