* [PATCH RESEND 00/83] drm: Switch drivers to drm_mode_config_create_initial_state
@ 2026-11-05 15:29 ` Maxime Ripard
0 siblings, 0 replies; 122+ 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] 122+ messages in thread
* [PATCH RESEND 00/83] drm: Switch drivers to drm_mode_config_create_initial_state
@ 2026-11-05 15:29 ` Maxime Ripard
0 siblings, 0 replies; 122+ 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, 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,
-----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] 122+ messages in thread
* [PATCH RESEND 01/83] drm/adp: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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
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] 122+ messages in thread
* [PATCH RESEND 02/83] drm/amdgpu: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
(?)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, 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] 122+ messages in thread
* [PATCH RESEND 03/83] drm/appletbdrm: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (2 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
2026-11-05 17:41 ` Aditya Garg
-1 siblings, 1 reply; 122+ 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, Aun-Ali Zaidi, Aditya Garg
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: Aditya Garg <gargaditya08@proton.me>
Cc: Aun-Ali Zaidi <admin@kodeit.net>
---
drivers/gpu/drm/tiny/appletbdrm.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/tiny/appletbdrm.c b/drivers/gpu/drm/tiny/appletbdrm.c
index ebfe37557bfe..73315d538fbb 100644
--- a/drivers/gpu/drm/tiny/appletbdrm.c
+++ b/drivers/gpu/drm/tiny/appletbdrm.c
@@ -730,7 +730,5 @@ static int appletbdrm_setup_mode_config(struct appletbdrm_device *adev)
}
- drm_mode_config_reset(drm);
-
- return 0;
+ return drm_mode_config_create_initial_state(drm);
}
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 04/83] drm/komeda: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (3 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
2026-11-05 15:46 ` Liviu Dudau
-1 siblings, 1 reply; 122+ 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, Liviu Dudau
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: Liviu Dudau <liviu.dudau@arm.com>
---
drivers/gpu/drm/arm/display/komeda/komeda_kms.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
index faa8b041373a..66854c6cc03f 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
@@ -310,5 +310,7 @@ struct komeda_kms_dev *komeda_kms_attach(struct komeda_dev *mdev)
goto cleanup_mode_config;
- drm_mode_config_reset(drm);
+ err = drm_mode_config_create_initial_state(drm);
+ if (err)
+ goto cleanup_mode_config;
err = devm_request_irq(drm->dev, mdev->irq,
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 05/83] drm/hdlcd: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (4 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
2026-11-05 15:46 ` Liviu Dudau
2026-11-05 16:30 ` sashiko-bot
-1 siblings, 2 replies; 122+ 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, Liviu Dudau
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: Liviu Dudau <liviu.dudau@arm.com>
---
drivers/gpu/drm/arm/hdlcd_drv.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
index 340b1bb38bf9..58ee8ad1d2ea 100644
--- a/drivers/gpu/drm/arm/hdlcd_drv.c
+++ b/drivers/gpu/drm/arm/hdlcd_drv.c
@@ -319,5 +319,7 @@ static int hdlcd_probe(struct platform_device *pdev)
}
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ goto err_vblank;
drm_kms_helper_poll_init(drm);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 06/83] drm/malidp: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (5 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
2026-11-05 15:46 ` Liviu Dudau
-1 siblings, 1 reply; 122+ 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, Liviu Dudau
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: Liviu Dudau <liviu.dudau@arm.com>
---
drivers/gpu/drm/arm/malidp_drv.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
index 23fa942ae4bb..b4e38eba5957 100644
--- a/drivers/gpu/drm/arm/malidp_drv.c
+++ b/drivers/gpu/drm/arm/malidp_drv.c
@@ -857,5 +857,7 @@ static int malidp_bind(struct device *dev)
pm_runtime_put(dev);
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ goto register_fail;
drm_kms_helper_poll_init(drm);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 07/83] drm/armada: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (6 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, Russell King
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: Russell King <linux@armlinux.org.uk>
---
drivers/gpu/drm/armada/armada_drv.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/armada/armada_drv.c b/drivers/gpu/drm/armada/armada_drv.c
index cae25ad66c74..5c19923c85b0 100644
--- a/drivers/gpu/drm/armada/armada_drv.c
+++ b/drivers/gpu/drm/armada/armada_drv.c
@@ -127,5 +127,7 @@ static int armada_drm_bind(struct device *dev)
goto err_comp;
- drm_mode_config_reset(&priv->drm);
+ ret = drm_mode_config_create_initial_state(&priv->drm);
+ if (ret)
+ goto err_comp;
drm_kms_helper_poll_init(&priv->drm);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 08/83] drm/aspeed: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (7 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, Andrew Jeffery, Joel Stanley
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: Andrew Jeffery <andrew@codeconstruct.com.au>
Cc: Joel Stanley <joel@jms.id.au>
---
drivers/gpu/drm/aspeed/aspeed_gfx_drv.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/aspeed/aspeed_gfx_drv.c b/drivers/gpu/drm/aspeed/aspeed_gfx_drv.c
index cacec0653bb1..3822b2723ba6 100644
--- a/drivers/gpu/drm/aspeed/aspeed_gfx_drv.c
+++ b/drivers/gpu/drm/aspeed/aspeed_gfx_drv.c
@@ -229,7 +229,5 @@ static int aspeed_gfx_load(struct drm_device *drm)
}
- drm_mode_config_reset(drm);
-
- return 0;
+ return drm_mode_config_create_initial_state(drm);
}
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 09/83] drm/ast: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (8 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, Dave Airlie, Jocelyn Falempe
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: Jocelyn Falempe <jfalempe@redhat.com>
---
drivers/gpu/drm/ast/ast_mode.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c
index 08db132acae8..efecc1193887 100644
--- a/drivers/gpu/drm/ast/ast_mode.c
+++ b/drivers/gpu/drm/ast/ast_mode.c
@@ -1074,5 +1074,7 @@ int ast_mode_config_init(struct ast_device *ast)
return ret;
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ return ret;
drmm_kms_helper_poll_init(dev);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 10/83] drm/atmel-hlcdc: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (9 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, Alexandre Belloni, Claudiu Beznea,
Dharma Balasubiramani, Manikandan Muralidharan, Nicolas Ferre
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: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Claudiu Beznea <claudiu.beznea@tuxon.dev>
Cc: Dharma Balasubiramani <dharma.b@microchip.com>
Cc: Manikandan Muralidharan <manikandan.m@microchip.com>
Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
---
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
index 2f41bce574dc..453c37de9bee 100644
--- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
@@ -880,5 +880,7 @@ static int atmel_hlcdc_dc_load(struct drm_device *dev)
}
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ goto err_periph_clk_disable;
pm_runtime_get_sync(dev->dev);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 11/83] drm/exynos: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (10 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, 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] 122+ messages in thread
* [PATCH RESEND 12/83] drm/fsl-dcu: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (11 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, Alison Wang, Stefan Agner
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: Alison Wang <alison.wang@nxp.com>
Cc: Stefan Agner <stefan@agner.ch>
---
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c
index 5b47000738e4..9c2189661d8a 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c
@@ -43,5 +43,7 @@ int fsl_dcu_drm_modeset_init(struct fsl_dcu_drm_device *fsl_dev)
goto err;
- drm_mode_config_reset(fsl_dev->drm);
+ ret = drm_mode_config_create_initial_state(fsl_dev->drm);
+ if (ret)
+ goto err;
drm_kms_helper_poll_init(fsl_dev->drm);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 13/83] drm/gud: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (12 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, Ruben Wauters
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: Ruben Wauters <rubenru09@aol.com>
---
drivers/gpu/drm/gud/gud_drv.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/gud/gud_drv.c b/drivers/gpu/drm/gud/gud_drv.c
index 680447f426f3..9ba6d8b94023 100644
--- a/drivers/gpu/drm/gud/gud_drv.c
+++ b/drivers/gpu/drm/gud/gud_drv.c
@@ -641,5 +641,7 @@ static int gud_probe(struct usb_interface *intf, const struct usb_device_id *id)
}
- 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] 122+ messages in thread
* [PATCH RESEND 14/83] drm/hisilicon/hibmc: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (13 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
2026-11-05 17:25 ` sashiko-bot
-1 siblings, 1 reply; 122+ 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, Tian Tao, Xinwei Kong, Yongbang Shi
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: Tian Tao <tiantao6@hisilicon.com>
Cc: Xinwei Kong <kong.kongxinwei@hisilicon.com>
Cc: Yongbang Shi <shiyongbang@huawei.com>
---
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
index 602930964e93..236840cb5b3a 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
@@ -412,6 +412,8 @@ static int hibmc_load(struct drm_device *dev)
}
- /* reset all the states of crtc/plane/encoder/connector */
- drm_mode_config_reset(dev);
+ /* Create all the states of crtc/plane/encoder/connector */
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ goto err;
drmm_kms_helper_poll_init(dev);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 15/83] drm/hisilicon/kirin: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (14 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
2026-11-05 19:35 ` John Stultz
-1 siblings, 1 reply; 122+ 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, John Stultz, Sumit Semwal, Xinliang Liu,
Yongqin Liu
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: John Stultz <jstultz@google.com>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: Xinliang Liu <xinliang.liu@linaro.org>
Cc: Yongqin Liu <yongqin.liu@linaro.org>
---
drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
index 8a11c2df5b88..85c814b6f05e 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
@@ -188,6 +188,8 @@ static int kirin_drm_kms_init(struct drm_device *dev,
}
- /* reset all the states of crtc/plane/encoder/connector */
- drm_mode_config_reset(dev);
+ /* Create all the states of crtc/plane/encoder/connector */
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ goto err_unbind_all;
/* init kms poll for handling hpd */
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 16/83] drm/hyperv: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (15 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, 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] 122+ messages in thread
* [PATCH RESEND 17/83] drm/imx/dc: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (16 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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] 122+ messages in thread
* [PATCH RESEND 18/83] drm/imx/dcss: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (17 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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] 122+ messages in thread
* [PATCH RESEND 19/83] drm/imx/ipuv3: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (18 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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] 122+ messages in thread
* [PATCH RESEND 20/83] drm/ingenic: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (19 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
2026-11-05 15:56 ` Paul Cercueil
2026-11-05 18:12 ` sashiko-bot
-1 siblings, 2 replies; 122+ 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, 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] 122+ messages in thread
* [PATCH RESEND 21/83] drm/kmb: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (20 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, Anitha Chrisanthus
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: Anitha Chrisanthus <anitha.chrisanthus@intel.com>
---
drivers/gpu/drm/kmb/kmb_drv.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/kmb/kmb_drv.c b/drivers/gpu/drm/kmb/kmb_drv.c
index 7c2eb1152fc2..fc8ab5124bd6 100644
--- a/drivers/gpu/drm/kmb/kmb_drv.c
+++ b/drivers/gpu/drm/kmb/kmb_drv.c
@@ -199,6 +199,5 @@ static int kmb_setup_mode_config(struct drm_device *drm)
}
- drm_mode_config_reset(drm);
- return 0;
+ return drm_mode_config_create_initial_state(drm);
}
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 22/83] drm/logicvc: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (21 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, Paul Kocialkowski
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 Kocialkowski <paulk@sys-base.io>
---
drivers/gpu/drm/logicvc/logicvc_mode.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/logicvc/logicvc_mode.c b/drivers/gpu/drm/logicvc/logicvc_mode.c
index 3cf04b70bd27..15503f96743f 100644
--- a/drivers/gpu/drm/logicvc/logicvc_mode.c
+++ b/drivers/gpu/drm/logicvc/logicvc_mode.c
@@ -62,5 +62,7 @@ int logicvc_mode_init(struct logicvc_drm *logicvc)
mode_config->funcs = &logicvc_mode_config_funcs;
- drm_mode_config_reset(drm_dev);
+ ret = drm_mode_config_create_initial_state(drm_dev);
+ if (ret)
+ return ret;
drm_kms_helper_poll_init(drm_dev);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 23/83] drm/loongson: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (22 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
2026-11-05 18:28 ` sashiko-bot
-1 siblings, 1 reply; 122+ 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, Huacai Chen, Icenowy Zheng, Jianmin Lv,
Mingcong Bai, Qianhai Wu, Xi Ruoyao
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: Huacai Chen <chenhuacai@kernel.org>
Cc: Icenowy Zheng <zhengxingda@iscas.ac.cn>
Cc: Jianmin Lv <lvjianmin@loongson.cn>
Cc: Mingcong Bai <jeffbai@aosc.io>
Cc: Qianhai Wu <wuqianhai@loongson.cn>
Cc: Xi Ruoyao <xry111@xry111.site>
---
drivers/gpu/drm/loongson/lsdc_drv.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/loongson/lsdc_drv.c b/drivers/gpu/drm/loongson/lsdc_drv.c
index 5a13df31eb90..fbb2658acce4 100644
--- a/drivers/gpu/drm/loongson/lsdc_drv.c
+++ b/drivers/gpu/drm/loongson/lsdc_drv.c
@@ -248,5 +248,7 @@ lsdc_create_device(struct pci_dev *pdev,
return ERR_PTR(ret);
- drm_mode_config_reset(ddev);
+ ret = drm_mode_config_create_initial_state(ddev);
+ if (ret)
+ return ERR_PTR(ret);
return ldev;
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 24/83] drm/mcde: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (23 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, Linus Walleij
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: Linus Walleij <linusw@kernel.org>
---
drivers/gpu/drm/mcde/mcde_drv.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/mcde/mcde_drv.c b/drivers/gpu/drm/mcde/mcde_drv.c
index 759e279b645a..52c4d2641a14 100644
--- a/drivers/gpu/drm/mcde/mcde_drv.c
+++ b/drivers/gpu/drm/mcde/mcde_drv.c
@@ -194,5 +194,7 @@ static int mcde_modeset_init(struct drm_device *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] 122+ messages in thread
* [PATCH RESEND 25/83] drm/mediatek: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (24 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, AngeloGioacchino Del Regno,
Chun-Kuang Hu, Matthias Brugger, Philipp Zabel
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: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Cc: Chun-Kuang Hu <chunkuang.hu@kernel.org>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
---
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
index dc8e3e917dd7..5ad1b080184d 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
@@ -580,8 +580,14 @@ static int mtk_drm_kms_init(struct drm_device *drm)
drm_kms_helper_poll_init(drm);
- drm_mode_config_reset(drm);
+
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ goto err_fini_poll;
return 0;
+err_fini_poll:
+ drm_kms_helper_poll_fini(drm);
+
err_component_unbind:
for (i = 0; i < private->data->mmsys_dev_num; i++)
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 26/83] drm/meson: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, 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
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 26/83] drm/meson: Switch to drm_mode_config_create_initial_state
@ 2026-11-05 15:29 ` Maxime Ripard
0 siblings, 0 replies; 122+ 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, 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] 122+ messages in thread
* [PATCH RESEND 27/83] drm/mgag200: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (26 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, Dave Airlie, Jocelyn Falempe
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: Jocelyn Falempe <jfalempe@redhat.com>
---
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 +++-
9 files changed, 27 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/mgag200/mgag200_g200.c b/drivers/gpu/drm/mgag200/mgag200_g200.c
index 9e6b4618fadd..d4788cdf64d7 100644
--- a/drivers/gpu/drm/mgag200/mgag200_g200.c
+++ b/drivers/gpu/drm/mgag200/mgag200_g200.c
@@ -402,5 +402,7 @@ struct mga_device *mgag200_g200_device_create(struct pci_dev *pdev, const struct
return ERR_PTR(ret);
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ return ERR_PTR(ret);
drm_kms_helper_poll_init(dev);
diff --git a/drivers/gpu/drm/mgag200/mgag200_g200eh.c b/drivers/gpu/drm/mgag200/mgag200_g200eh.c
index e64bfeafbefc..b6ef287c05da 100644
--- a/drivers/gpu/drm/mgag200/mgag200_g200eh.c
+++ b/drivers/gpu/drm/mgag200/mgag200_g200eh.c
@@ -274,5 +274,7 @@ struct mga_device *mgag200_g200eh_device_create(struct pci_dev *pdev, const stru
return ERR_PTR(ret);
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ return ERR_PTR(ret);
drm_kms_helper_poll_init(dev);
diff --git a/drivers/gpu/drm/mgag200/mgag200_g200eh3.c b/drivers/gpu/drm/mgag200/mgag200_g200eh3.c
index 183b7676ea6a..973770ee941a 100644
--- a/drivers/gpu/drm/mgag200/mgag200_g200eh3.c
+++ b/drivers/gpu/drm/mgag200/mgag200_g200eh3.c
@@ -179,5 +179,7 @@ struct mga_device *mgag200_g200eh3_device_create(struct pci_dev *pdev,
return ERR_PTR(ret);
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ return ERR_PTR(ret);
drm_kms_helper_poll_init(dev);
diff --git a/drivers/gpu/drm/mgag200/mgag200_g200eh5.c b/drivers/gpu/drm/mgag200/mgag200_g200eh5.c
index dc375c055b0e..0241244bd3f5 100644
--- a/drivers/gpu/drm/mgag200/mgag200_g200eh5.c
+++ b/drivers/gpu/drm/mgag200/mgag200_g200eh5.c
@@ -199,5 +199,7 @@ struct mga_device *mgag200_g200eh5_device_create(struct pci_dev *pdev,
return ERR_PTR(ret);
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ return ERR_PTR(ret);
drm_kms_helper_poll_init(dev);
diff --git a/drivers/gpu/drm/mgag200/mgag200_g200er.c b/drivers/gpu/drm/mgag200/mgag200_g200er.c
index 205678a57bfe..df83857b9634 100644
--- a/drivers/gpu/drm/mgag200/mgag200_g200er.c
+++ b/drivers/gpu/drm/mgag200/mgag200_g200er.c
@@ -307,5 +307,7 @@ struct mga_device *mgag200_g200er_device_create(struct pci_dev *pdev, const stru
return ERR_PTR(ret);
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ return ERR_PTR(ret);
drm_kms_helper_poll_init(dev);
diff --git a/drivers/gpu/drm/mgag200/mgag200_g200ev.c b/drivers/gpu/drm/mgag200/mgag200_g200ev.c
index d60693ac0749..82ee58b3faab 100644
--- a/drivers/gpu/drm/mgag200/mgag200_g200ev.c
+++ b/drivers/gpu/drm/mgag200/mgag200_g200ev.c
@@ -312,5 +312,7 @@ struct mga_device *mgag200_g200ev_device_create(struct pci_dev *pdev, const stru
return ERR_PTR(ret);
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ return ERR_PTR(ret);
drm_kms_helper_poll_init(dev);
diff --git a/drivers/gpu/drm/mgag200/mgag200_g200ew3.c b/drivers/gpu/drm/mgag200/mgag200_g200ew3.c
index 9c14d0eb66bc..19c6a65e8621 100644
--- a/drivers/gpu/drm/mgag200/mgag200_g200ew3.c
+++ b/drivers/gpu/drm/mgag200/mgag200_g200ew3.c
@@ -197,5 +197,7 @@ struct mga_device *mgag200_g200ew3_device_create(struct pci_dev *pdev,
return ERR_PTR(ret);
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ return ERR_PTR(ret);
drm_kms_helper_poll_init(dev);
diff --git a/drivers/gpu/drm/mgag200/mgag200_g200se.c b/drivers/gpu/drm/mgag200/mgag200_g200se.c
index 349ec36f6d49..937bceb8309f 100644
--- a/drivers/gpu/drm/mgag200/mgag200_g200se.c
+++ b/drivers/gpu/drm/mgag200/mgag200_g200se.c
@@ -519,5 +519,7 @@ struct mga_device *mgag200_g200se_device_create(struct pci_dev *pdev, const stru
return ERR_PTR(ret);
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ return ERR_PTR(ret);
drm_kms_helper_poll_init(dev);
diff --git a/drivers/gpu/drm/mgag200/mgag200_g200wb.c b/drivers/gpu/drm/mgag200/mgag200_g200wb.c
index f65d4238422f..92e4cd9ef50e 100644
--- a/drivers/gpu/drm/mgag200/mgag200_g200wb.c
+++ b/drivers/gpu/drm/mgag200/mgag200_g200wb.c
@@ -321,5 +321,7 @@ struct mga_device *mgag200_g200wb_device_create(struct pci_dev *pdev, const stru
return ERR_PTR(ret);
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ return ERR_PTR(ret);
drm_kms_helper_poll_init(dev);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 28/83] drm/msm: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (27 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, 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] 122+ messages in thread
* [PATCH RESEND 29/83] drm/lcdif: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (28 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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] 122+ messages in thread
* [PATCH RESEND 30/83] drm/mxsfb: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (29 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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] 122+ messages in thread
* [PATCH RESEND 31/83] drm/nouveau: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, Danilo Krummrich, Lyude Paul, 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] 122+ messages in thread
* [PATCH RESEND 31/83] drm/nouveau: Switch to drm_mode_config_create_initial_state
@ 2026-11-05 15:29 ` Maxime Ripard
0 siblings, 0 replies; 122+ 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, 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] 122+ messages in thread
* [PATCH RESEND 32/83] drm/omap: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (31 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, Tomi Valkeinen
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: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
---
drivers/gpu/drm/omapdrm/omap_drv.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
index 89a6d3b4aa6f..db216c888a8f 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.c
+++ b/drivers/gpu/drm/omapdrm/omap_drv.c
@@ -536,5 +536,7 @@ static int omap_modeset_init(struct drm_device *dev)
dev->mode_config.helper_private = &omap_mode_config_helper_funcs;
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ return ret;
omap_drm_irq_install(dev);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 33/83] drm/pl111: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (32 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, Linus Walleij
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: Linus Walleij <linusw@kernel.org>
---
drivers/gpu/drm/pl111/pl111_drv.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/pl111/pl111_drv.c b/drivers/gpu/drm/pl111/pl111_drv.c
index 89d44e970510..fbfbb8efd2e9 100644
--- a/drivers/gpu/drm/pl111/pl111_drv.c
+++ b/drivers/gpu/drm/pl111/pl111_drv.c
@@ -182,5 +182,7 @@ static int pl111_modeset_init(struct drm_device *dev)
}
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ goto out_bridge;
drm_kms_helper_poll_init(dev);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 34/83] drm/qxl: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (33 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
2026-11-05 19:32 ` sashiko-bot
-1 siblings, 1 reply; 122+ 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, 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] 122+ messages in thread
* [PATCH RESEND 35/83] drm/rcar-du: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (34 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, 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] 122+ messages in thread
* [PATCH RESEND 36/83] drm/rz-du: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (35 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, 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] 122+ messages in thread
* [PATCH RESEND 37/83] drm/shmobile: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (36 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, 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] 122+ messages in thread
* [PATCH RESEND 38/83] drm/rockchip: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, 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
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 38/83] drm/rockchip: Switch to drm_mode_config_create_initial_state
@ 2026-11-05 15:29 ` Maxime Ripard
0 siblings, 0 replies; 122+ 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, 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] 122+ messages in thread
* [PATCH RESEND 39/83] drm/st7571: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (38 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, Marcus Folkesson
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: Marcus Folkesson <marcus.folkesson@gmail.com>
---
drivers/gpu/drm/sitronix/st7571.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/sitronix/st7571.c b/drivers/gpu/drm/sitronix/st7571.c
index 608d38eab0fc..2d82fb78587d 100644
--- a/drivers/gpu/drm/sitronix/st7571.c
+++ b/drivers/gpu/drm/sitronix/st7571.c
@@ -868,5 +868,7 @@ struct st7571_device *st7571_probe(struct device *dev,
}
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ return ERR_PTR(ret);
ret = drm_dev_register(drm, 0);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 40/83] drm/st7586: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (39 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, David Lechner
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: David Lechner <david@lechnology.com>
---
drivers/gpu/drm/sitronix/st7586.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/sitronix/st7586.c b/drivers/gpu/drm/sitronix/st7586.c
index 28b2245f6b79..50b2e4c901ce 100644
--- a/drivers/gpu/drm/sitronix/st7586.c
+++ b/drivers/gpu/drm/sitronix/st7586.c
@@ -456,5 +456,7 @@ static int st7586_probe(struct spi_device *spi)
return ret;
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ return ret;
ret = drm_dev_register(drm, 0);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 41/83] drm/st7735r: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (40 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, David Lechner
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: David Lechner <david@lechnology.com>
---
drivers/gpu/drm/sitronix/st7735r.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/sitronix/st7735r.c b/drivers/gpu/drm/sitronix/st7735r.c
index bd763871dca0..e6c77b01dd38 100644
--- a/drivers/gpu/drm/sitronix/st7735r.c
+++ b/drivers/gpu/drm/sitronix/st7735r.c
@@ -336,5 +336,7 @@ static int st7735r_probe(struct spi_device *spi)
return ret;
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ return ret;
ret = drm_dev_register(drm, 0);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 42/83] drm/st7920: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (41 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, Iker Pedrosa
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: Iker Pedrosa <ikerpedrosam@gmail.com>
---
drivers/gpu/drm/sitronix/st7920.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/sitronix/st7920.c b/drivers/gpu/drm/sitronix/st7920.c
index 2f2c808e783b..616d83387d31 100644
--- a/drivers/gpu/drm/sitronix/st7920.c
+++ b/drivers/gpu/drm/sitronix/st7920.c
@@ -785,7 +785,5 @@ static int st7920_init_modeset(struct st7920_device *st7920)
}
- drm_mode_config_reset(drm);
-
- return 0;
+ return drm_mode_config_create_initial_state(drm);
}
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 43/83] drm/ssd130x: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (42 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
2026-11-05 15:53 ` Javier Martinez Canillas
-1 siblings, 1 reply; 122+ 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, Javier Martinez Canillas
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: Javier Martinez Canillas <javierm@redhat.com>
---
drivers/gpu/drm/solomon/ssd130x.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/solomon/ssd130x.c b/drivers/gpu/drm/solomon/ssd130x.c
index 8d5d737db9c4..a6dbefb37b2c 100644
--- a/drivers/gpu/drm/solomon/ssd130x.c
+++ b/drivers/gpu/drm/solomon/ssd130x.c
@@ -2218,7 +2218,5 @@ static int ssd130x_init_modeset(struct ssd130x_device *ssd130x)
}
- drm_mode_config_reset(drm);
-
- return 0;
+ return drm_mode_config_create_initial_state(drm);
}
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 44/83] drm/sprd: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (43 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
-1 siblings, 0 replies; 122+ 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, Baolin Wang, Chunyan Zhang, Orson Zhai
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: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: Chunyan Zhang <zhang.lyra@gmail.com>
Cc: Orson Zhai <orsonzhai@gmail.com>
---
drivers/gpu/drm/sprd/sprd_drm.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/sprd/sprd_drm.c b/drivers/gpu/drm/sprd/sprd_drm.c
index c2fd5380a834..cef022f54912 100644
--- a/drivers/gpu/drm/sprd/sprd_drm.c
+++ b/drivers/gpu/drm/sprd/sprd_drm.c
@@ -96,6 +96,8 @@ static int sprd_drm_bind(struct device *dev)
}
- /* reset all the states of crtc/plane/encoder/connector */
- drm_mode_config_reset(drm);
+ /* Create the states of crtc/plane/encoder/connector */
+ 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] 122+ messages in thread
* [PATCH RESEND 45/83] drm/sti: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (44 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
2026-11-05 20:07 ` sashiko-bot
-1 siblings, 1 reply; 122+ 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, Alain Volmat, Raphael Gallais-Pou
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: Alain Volmat <alain.volmat@foss.st.com>
Cc: Raphael Gallais-Pou <rgallaispou@gmail.com>
---
drivers/gpu/drm/sti/sti_drv.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c
index d02d71866f2a..0ca6c6b41f18 100644
--- a/drivers/gpu/drm/sti/sti_drv.c
+++ b/drivers/gpu/drm/sti/sti_drv.c
@@ -203,5 +203,7 @@ static int sti_bind(struct device *dev)
goto err_cleanup;
- drm_mode_config_reset(ddev);
+ ret = drm_mode_config_create_initial_state(ddev);
+ if (ret)
+ goto err_unregister;
drm_client_setup(ddev, NULL);
@@ -209,4 +211,6 @@ static int sti_bind(struct device *dev)
return 0;
+err_unregister:
+ drm_dev_unregister(ddev);
err_cleanup:
sti_cleanup(ddev);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 46/83] drm/stm: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (45 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
2026-11-05 20:15 ` sashiko-bot
-1 siblings, 1 reply; 122+ 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, Alexandre Torgue, Maxime Coquelin,
Philippe Cornu, Raphael Gallais-Pou, Yannick Fertre
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: Alexandre Torgue <alexandre.torgue@foss.st.com>
Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
Cc: Philippe Cornu <philippe.cornu@foss.st.com>
Cc: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
Cc: Yannick Fertre <yannick.fertre@foss.st.com>
---
drivers/gpu/drm/stm/drv.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/stm/drv.c b/drivers/gpu/drm/stm/drv.c
index 0967b9b3451d..60343ffe02f7 100644
--- a/drivers/gpu/drm/stm/drv.c
+++ b/drivers/gpu/drm/stm/drv.c
@@ -105,5 +105,7 @@ static int drv_load(struct drm_device *ddev)
return ret;
- drm_mode_config_reset(ddev);
+ ret = drm_mode_config_create_initial_state(ddev);
+ if (ret)
+ return ret;
drm_kms_helper_poll_init(ddev);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 47/83] drm/sun4i: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (46 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
2026-11-05 15:37 ` Chen-Yu Tsai
2026-11-05 20:24 ` sashiko-bot
-1 siblings, 2 replies; 122+ 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, 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] 122+ messages in thread
* [PATCH RESEND 48/83] drm/corebootdrm: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (47 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
2026-11-05 15:54 ` Javier Martinez Canillas
-1 siblings, 1 reply; 122+ 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, Javier Martinez Canillas
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: Javier Martinez Canillas <javierm@redhat.com>
---
drivers/gpu/drm/sysfb/corebootdrm.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/sysfb/corebootdrm.c b/drivers/gpu/drm/sysfb/corebootdrm.c
index 853da9a609df..e7806a9215d1 100644
--- a/drivers/gpu/drm/sysfb/corebootdrm.c
+++ b/drivers/gpu/drm/sysfb/corebootdrm.c
@@ -422,5 +422,7 @@ static int corebootdrm_probe(struct platform_device *pdev)
return ret;
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ return ret;
ret = drm_dev_register(dev, 0);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 49/83] drm/efidrm: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (48 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
2026-11-05 15:55 ` Javier Martinez Canillas
-1 siblings, 1 reply; 122+ 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, Javier Martinez Canillas
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: Javier Martinez Canillas <javierm@redhat.com>
---
drivers/gpu/drm/sysfb/efidrm.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/sysfb/efidrm.c b/drivers/gpu/drm/sysfb/efidrm.c
index 8b19f437308e..bfdf6d07ab1e 100644
--- a/drivers/gpu/drm/sysfb/efidrm.c
+++ b/drivers/gpu/drm/sysfb/efidrm.c
@@ -364,5 +364,7 @@ static struct efidrm_device *efidrm_device_create(struct drm_driver *drv,
return ERR_PTR(ret);
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ return ERR_PTR(ret);
return efi;
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 50/83] drm/ofdrm: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (49 preceding siblings ...)
(?)
@ 2026-11-05 15:29 ` Maxime Ripard
2026-11-05 15:56 ` Javier Martinez Canillas
-1 siblings, 1 reply; 122+ 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, Javier Martinez Canillas
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: Javier Martinez Canillas <javierm@redhat.com>
---
drivers/gpu/drm/sysfb/ofdrm.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/sysfb/ofdrm.c b/drivers/gpu/drm/sysfb/ofdrm.c
index c41255569854..ce9a937b3cd7 100644
--- a/drivers/gpu/drm/sysfb/ofdrm.c
+++ b/drivers/gpu/drm/sysfb/ofdrm.c
@@ -1092,5 +1092,7 @@ static struct ofdrm_device *ofdrm_device_create(struct drm_driver *drv,
return ERR_PTR(ret);
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ return ERR_PTR(ret);
return odev;
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 51/83] drm/simpledrm: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (50 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
2026-11-05 15:56 ` Javier Martinez Canillas
-1 siblings, 1 reply; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, Javier Martinez Canillas
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: Javier Martinez Canillas <javierm@redhat.com>
---
drivers/gpu/drm/sysfb/simpledrm.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/sysfb/simpledrm.c b/drivers/gpu/drm/sysfb/simpledrm.c
index 21ddf4502ecc..f75b7d62b3eb 100644
--- a/drivers/gpu/drm/sysfb/simpledrm.c
+++ b/drivers/gpu/drm/sysfb/simpledrm.c
@@ -877,5 +877,7 @@ static struct simpledrm_device *simpledrm_device_create(struct drm_driver *drv,
return ERR_PTR(ret);
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ return ERR_PTR(ret);
return sdev;
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 52/83] drm/vesadrm: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (51 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
2026-11-05 15:57 ` Javier Martinez Canillas
-1 siblings, 1 reply; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, Javier Martinez Canillas
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: Javier Martinez Canillas <javierm@redhat.com>
---
drivers/gpu/drm/sysfb/vesadrm.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/sysfb/vesadrm.c b/drivers/gpu/drm/sysfb/vesadrm.c
index 1668aabf8687..474fc2db0ee1 100644
--- a/drivers/gpu/drm/sysfb/vesadrm.c
+++ b/drivers/gpu/drm/sysfb/vesadrm.c
@@ -610,5 +610,7 @@ static struct vesadrm_device *vesadrm_device_create(struct drm_driver *drv,
return ERR_PTR(ret);
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ return ERR_PTR(ret);
return vesa;
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 53/83] drm/tegra: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (52 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
2026-11-05 15:51 ` Thierry Reding
-1 siblings, 1 reply; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, 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] 122+ messages in thread
* [PATCH RESEND 54/83] drm/tests: drm_atomic_state_test: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (53 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
2026-11-05 20:46 ` sashiko-bot
-1 siblings, 1 reply; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel
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>
---
drivers/gpu/drm/tests/drm_atomic_commit_test.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tests/drm_atomic_commit_test.c b/drivers/gpu/drm/tests/drm_atomic_commit_test.c
index 6ccb001f6264..97f60ce68b3e 100644
--- a/drivers/gpu/drm/tests/drm_atomic_commit_test.c
+++ b/drivers/gpu/drm/tests/drm_atomic_commit_test.c
@@ -135,5 +135,7 @@ drm_atomic_test_init_drm_components(struct kunit *test, bool has_connectors)
done:
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ return ERR_PTR(ret);
return priv;
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 55/83] drm/tests: drm_atomic_test: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (54 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel
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>
---
drivers/gpu/drm/tests/drm_atomic_test.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tests/drm_atomic_test.c b/drivers/gpu/drm/tests/drm_atomic_test.c
index 541a0062f143..5e156d09e56f 100644
--- a/drivers/gpu/drm/tests/drm_atomic_test.c
+++ b/drivers/gpu/drm/tests/drm_atomic_test.c
@@ -87,5 +87,7 @@ static struct drm_atomic_test_priv *create_device(struct kunit *test)
drm_connector_attach_encoder(connector, enc);
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ return ERR_PTR(ret);
return priv;
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 56/83] drm/tests: drm_bridge_test: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (55 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel
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>
---
drivers/gpu/drm/tests/drm_bridge_test.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/tests/drm_bridge_test.c b/drivers/gpu/drm/tests/drm_bridge_test.c
index 15583ade8494..f56209c0ab1c 100644
--- a/drivers/gpu/drm/tests/drm_bridge_test.c
+++ b/drivers/gpu/drm/tests/drm_bridge_test.c
@@ -423,5 +423,7 @@ drm_test_bridge_init(struct kunit *test, const struct drm_bridge_funcs *funcs)
return ERR_CAST(priv->connector);
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ return ERR_PTR(ret);
return priv;
@@ -521,5 +523,7 @@ drm_test_bridge_chain_init(struct kunit *test, unsigned int num_bridges,
drm_connector_attach_encoder(priv->connector, enc);
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ return ERR_PTR(ret);
if (!has_hdmi)
@@ -613,5 +617,7 @@ drm_test_bridge_hdmi_init(struct kunit *test, const struct drm_bridge_funcs *fun
drm_connector_attach_encoder(priv->connector, enc);
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ return ERR_PTR(ret);
return priv;
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 57/83] drm/tests: drm_hdmi_state_helper_test: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (56 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
2026-11-05 21:01 ` sashiko-bot
-1 siblings, 1 reply; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel
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>
---
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
index 336bb644cb7c..99a0fa479704 100644
--- a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
+++ b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
@@ -298,5 +298,7 @@ __connector_hdmi_init(struct kunit *test,
drm_connector_attach_encoder(conn, enc);
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ return ERR_PTR(ret);
if (edid_data && edid_len) {
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 58/83] drm/tidss: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (57 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, Jyri Sarha, Tomi Valkeinen
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: Jyri Sarha <jyri.sarha@iki.fi>
Cc: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
---
drivers/gpu/drm/tidss/tidss_drv.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tidss/tidss_drv.c b/drivers/gpu/drm/tidss/tidss_drv.c
index 44b0b009c29a..e258f656cf03 100644
--- a/drivers/gpu/drm/tidss/tidss_drv.c
+++ b/drivers/gpu/drm/tidss/tidss_drv.c
@@ -167,5 +167,9 @@ static int tidss_probe(struct platform_device *pdev)
drm_kms_helper_poll_init(ddev);
- drm_mode_config_reset(ddev);
+ ret = drm_mode_config_create_initial_state(ddev);
+ if (ret) {
+ dev_err(dev, "failed to create initial state: %d\n", ret);
+ goto err_irq_uninstall;
+ }
ret = drm_dev_register(ddev, 0);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 59/83] drm/tilcdc: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (58 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
2026-11-05 21:19 ` sashiko-bot
-1 siblings, 1 reply; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, Jyri Sarha, Tomi Valkeinen
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: Jyri Sarha <jyri.sarha@iki.fi>
Cc: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
---
drivers/gpu/drm/tilcdc/tilcdc_drv.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
index 1d6c9a423a41..da718d9cb1d6 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
@@ -423,5 +423,7 @@ static int tilcdc_pdev_probe(struct platform_device *pdev)
}
- drm_mode_config_reset(ddev);
+ ret = drm_mode_config_create_initial_state(ddev);
+ if (ret)
+ goto stop_poll;
drm_kms_helper_poll_init(ddev);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 60/83] drm/arcpgu: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (59 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, Alexey Brodkin
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: Alexey Brodkin <abrodkin@synopsys.com>
---
drivers/gpu/drm/tiny/arcpgu.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tiny/arcpgu.c b/drivers/gpu/drm/tiny/arcpgu.c
index 32f6e98ba9c5..08747a98ff3b 100644
--- a/drivers/gpu/drm/tiny/arcpgu.c
+++ b/drivers/gpu/drm/tiny/arcpgu.c
@@ -417,5 +417,7 @@ static int arcpgu_load(struct arcpgu_drm_private *arcpgu)
}
- 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] 122+ messages in thread
* [PATCH RESEND 61/83] drm/bochs: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (60 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
2026-11-05 21:25 ` sashiko-bot
-1 siblings, 1 reply; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, 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] 122+ messages in thread
* [PATCH RESEND 62/83] drm/cirrus-qemu: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (61 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
2026-11-05 21:26 ` sashiko-bot
-1 siblings, 1 reply; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, 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] 122+ messages in thread
* [PATCH RESEND 63/83] drm/gm12u320: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (62 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, Hans de Goede
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: Hans de Goede <hansg@kernel.org>
---
drivers/gpu/drm/tiny/gm12u320.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tiny/gm12u320.c b/drivers/gpu/drm/tiny/gm12u320.c
index 5c4004346ff8..527b830e4465 100644
--- a/drivers/gpu/drm/tiny/gm12u320.c
+++ b/drivers/gpu/drm/tiny/gm12u320.c
@@ -773,5 +773,7 @@ static int gm12u320_usb_probe(struct usb_interface *interface,
return ret;
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ return ret;
usb_set_intfdata(interface, dev);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 64/83] drm/hx8357d: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (63 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel
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>
---
drivers/gpu/drm/tiny/hx8357d.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tiny/hx8357d.c b/drivers/gpu/drm/tiny/hx8357d.c
index f942a8d09ff2..fe2fc76e2b3f 100644
--- a/drivers/gpu/drm/tiny/hx8357d.c
+++ b/drivers/gpu/drm/tiny/hx8357d.c
@@ -361,5 +361,7 @@ static int hx8357d_probe(struct spi_device *spi)
return ret;
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ return ret;
ret = drm_dev_register(drm, 0);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 65/83] drm/ili9163: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (64 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel
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>
---
drivers/gpu/drm/tiny/ili9163.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tiny/ili9163.c b/drivers/gpu/drm/tiny/ili9163.c
index 8842424504e3..5b94626c2177 100644
--- a/drivers/gpu/drm/tiny/ili9163.c
+++ b/drivers/gpu/drm/tiny/ili9163.c
@@ -292,5 +292,7 @@ static int ili9163_probe(struct spi_device *spi)
return ret;
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ return ret;
ret = drm_dev_register(drm, 0);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 66/83] drm/ili9225: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (65 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, David Lechner
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: David Lechner <david@lechnology.com>
---
drivers/gpu/drm/tiny/ili9225.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tiny/ili9225.c b/drivers/gpu/drm/tiny/ili9225.c
index 5bf52a8fd75b..3b1f3b9a0abe 100644
--- a/drivers/gpu/drm/tiny/ili9225.c
+++ b/drivers/gpu/drm/tiny/ili9225.c
@@ -519,5 +519,7 @@ static int ili9225_probe(struct spi_device *spi)
return ret;
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ return ret;
ret = drm_dev_register(drm, 0);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 67/83] drm/ili9341: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (66 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel
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>
---
drivers/gpu/drm/tiny/ili9341.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tiny/ili9341.c b/drivers/gpu/drm/tiny/ili9341.c
index 003381aa22ea..def7696362ff 100644
--- a/drivers/gpu/drm/tiny/ili9341.c
+++ b/drivers/gpu/drm/tiny/ili9341.c
@@ -323,5 +323,7 @@ static int ili9341_probe(struct spi_device *spi)
return ret;
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ return ret;
ret = drm_dev_register(drm, 0);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 68/83] drm/ili9486: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (67 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, Kamlesh Gurudasani
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: Kamlesh Gurudasani <kamlesh.gurudasani@gmail.com>
---
drivers/gpu/drm/tiny/ili9486.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tiny/ili9486.c b/drivers/gpu/drm/tiny/ili9486.c
index c945a9144315..755aac1f749b 100644
--- a/drivers/gpu/drm/tiny/ili9486.c
+++ b/drivers/gpu/drm/tiny/ili9486.c
@@ -351,5 +351,7 @@ static int ili9486_probe(struct spi_device *spi)
return ret;
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ return ret;
ret = drm_dev_register(drm, 0);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 69/83] drm/mi0283qt: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (68 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, Alex Lanzano
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: Alex Lanzano <lanzano.alex@gmail.com>
---
drivers/gpu/drm/tiny/mi0283qt.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tiny/mi0283qt.c b/drivers/gpu/drm/tiny/mi0283qt.c
index b0121e89e2dc..cf53509044d1 100644
--- a/drivers/gpu/drm/tiny/mi0283qt.c
+++ b/drivers/gpu/drm/tiny/mi0283qt.c
@@ -331,5 +331,7 @@ static int mi0283qt_probe(struct spi_device *spi)
return ret;
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ return ret;
ret = drm_dev_register(drm, 0);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 70/83] drm/panel-mipi-dbi: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (69 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel
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>
---
drivers/gpu/drm/tiny/panel-mipi-dbi.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tiny/panel-mipi-dbi.c b/drivers/gpu/drm/tiny/panel-mipi-dbi.c
index 60cd65cae41d..c900b1366723 100644
--- a/drivers/gpu/drm/tiny/panel-mipi-dbi.c
+++ b/drivers/gpu/drm/tiny/panel-mipi-dbi.c
@@ -491,5 +491,7 @@ static int panel_mipi_dbi_spi_probe(struct spi_device *spi)
return ret;
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ return ret;
ret = drm_dev_register(drm, 0);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 71/83] drm/pixpaper: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (70 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, LiangCheng Wang
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: LiangCheng Wang <zaq14760@gmail.com>
---
drivers/gpu/drm/tiny/pixpaper.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tiny/pixpaper.c b/drivers/gpu/drm/tiny/pixpaper.c
index 2a92a28b40f6..f8a633d0fbd8 100644
--- a/drivers/gpu/drm/tiny/pixpaper.c
+++ b/drivers/gpu/drm/tiny/pixpaper.c
@@ -1119,5 +1119,7 @@ static int pixpaper_probe(struct spi_device *spi)
drm_connector_attach_encoder(&panel->connector, &panel->encoder);
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ return ret;
ret = drm_dev_register(drm, 0);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 72/83] drm/repaper: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (71 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, Alex Lanzano
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: Alex Lanzano <lanzano.alex@gmail.com>
---
drivers/gpu/drm/tiny/repaper.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tiny/repaper.c b/drivers/gpu/drm/tiny/repaper.c
index 25e6a7a4affc..4a0f55e3a9ee 100644
--- a/drivers/gpu/drm/tiny/repaper.c
+++ b/drivers/gpu/drm/tiny/repaper.c
@@ -1191,5 +1191,7 @@ static int repaper_probe(struct spi_device *spi)
return ret;
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ return ret;
ret = drm_dev_register(drm, 0);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 73/83] drm/sharp-memory: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (72 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, Alex Lanzano
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: Alex Lanzano <lanzano.alex@gmail.com>
---
drivers/gpu/drm/tiny/sharp-memory.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tiny/sharp-memory.c b/drivers/gpu/drm/tiny/sharp-memory.c
index b948e44544d6..579782940cf4 100644
--- a/drivers/gpu/drm/tiny/sharp-memory.c
+++ b/drivers/gpu/drm/tiny/sharp-memory.c
@@ -621,5 +621,7 @@ static int sharp_memory_probe(struct spi_device *spi)
drm_plane_enable_fb_damage_clips(&smd->plane);
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ return ret;
ret = drm_dev_register(drm, 0);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 74/83] drm/tve200: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (73 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, Linus Walleij
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: Linus Walleij <linusw@kernel.org>
---
drivers/gpu/drm/tve200/tve200_drv.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tve200/tve200_drv.c b/drivers/gpu/drm/tve200/tve200_drv.c
index 2bcb9dc86ffd..fe94b34d5b41 100644
--- a/drivers/gpu/drm/tve200/tve200_drv.c
+++ b/drivers/gpu/drm/tve200/tve200_drv.c
@@ -119,5 +119,7 @@ static int tve200_modeset_init(struct drm_device *dev)
}
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ goto out_bridge;
drm_kms_helper_poll_init(dev);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 75/83] drm/udl: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (74 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, Dave Airlie, Sean Paul
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: Sean Paul <sean@poorly.run>
---
drivers/gpu/drm/udl/udl_modeset.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/udl/udl_modeset.c b/drivers/gpu/drm/udl/udl_modeset.c
index d8a617e2d2ea..02138457a97b 100644
--- a/drivers/gpu/drm/udl/udl_modeset.c
+++ b/drivers/gpu/drm/udl/udl_modeset.c
@@ -541,5 +541,7 @@ int udl_modeset_init(struct udl_device *udl)
return ret;
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ return ret;
drmm_kms_helper_poll_init(dev);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 76/83] drm/vboxvideo: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (75 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, Hans de Goede
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: Hans de Goede <hansg@kernel.org>
---
drivers/gpu/drm/vboxvideo/vbox_mode.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/vboxvideo/vbox_mode.c b/drivers/gpu/drm/vboxvideo/vbox_mode.c
index d66dc1cbbd82..414f2af1e821 100644
--- a/drivers/gpu/drm/vboxvideo/vbox_mode.c
+++ b/drivers/gpu/drm/vboxvideo/vbox_mode.c
@@ -878,5 +878,8 @@ int vbox_mode_init(struct vbox_private *vbox)
}
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ goto err_drm_mode_cleanup;
+
return 0;
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 77/83] drm/vc4: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (76 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
2026-11-05 16:06 ` Dave Stevenson
-1 siblings, 1 reply; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, Maíra Canal, Dave Stevenson,
Raspberry Pi Kernel Maintenance
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: "Maíra Canal" <mcanal@igalia.com>
Cc: Dave Stevenson <dave.stevenson@raspberrypi.com>
Cc: Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
---
drivers/gpu/drm/vc4/vc4_kms.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c
index 82a7f2ac4c7e..ab551eb2da50 100644
--- a/drivers/gpu/drm/vc4/vc4_kms.c
+++ b/drivers/gpu/drm/vc4/vc4_kms.c
@@ -1187,5 +1187,7 @@ int vc4_kms_load(struct drm_device *dev)
return ret;
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ return ret;
drmm_kms_helper_poll_init(dev);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 78/83] drm/verisilicon: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (77 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, Icenowy Zheng
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: Icenowy Zheng <zhengxingda@iscas.ac.cn>
---
drivers/gpu/drm/verisilicon/vs_drm.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/verisilicon/vs_drm.c b/drivers/gpu/drm/verisilicon/vs_drm.c
index fd259d53f49f..3f93cd43c623 100644
--- a/drivers/gpu/drm/verisilicon/vs_drm.c
+++ b/drivers/gpu/drm/verisilicon/vs_drm.c
@@ -131,5 +131,7 @@ int vs_drm_initialize(struct vs_dc *dc, struct platform_device *pdev)
drm_kms_helper_poll_init(drm);
- drm_mode_config_reset(drm);
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ goto err_fini_poll;
ret = drm_dev_register(drm, 0);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 79/83] drm/virtio: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (78 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
2026-11-05 22:14 ` sashiko-bot
-1 siblings, 1 reply; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, 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] 122+ messages in thread
* [PATCH RESEND 80/83] drm/vkms: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (79 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, Haneen Mohammed, Louis Chauvet,
Melissa Wen
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: Haneen Mohammed <hamohammed.sa@gmail.com>
Cc: Louis Chauvet <louis.chauvet@bootlin.com>
Cc: Melissa Wen <melissa.srw@gmail.com>
---
drivers/gpu/drm/vkms/vkms_output.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/vkms/vkms_output.c b/drivers/gpu/drm/vkms/vkms_output.c
index 86ce07a617f5..982c6cd5fcc7 100644
--- a/drivers/gpu/drm/vkms/vkms_output.c
+++ b/drivers/gpu/drm/vkms/vkms_output.c
@@ -116,6 +116,4 @@ int vkms_output_init(struct vkms_device *vkmsdev)
}
- drm_mode_config_reset(dev);
-
- return 0;
+ return drm_mode_config_create_initial_state(dev);
}
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 81/83] drm/vmwgfx: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (80 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
2026-11-05 22:27 ` sashiko-bot
-1 siblings, 1 reply; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, Broadcom internal kernel review list,
Zack Rusin
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: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
Cc: Zack Rusin <zack.rusin@broadcom.com>
---
drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 4 +++-
drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 4 +---
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 4 +---
3 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
index 0dea09cc29a7..93d755b81887 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
@@ -568,5 +568,7 @@ int vmw_kms_ldu_init_display(struct vmw_private *dev_priv)
dev_priv->active_display_unit = vmw_du_legacy;
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ goto err_free;
return 0;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
index 39d58fc392bf..82fe7db26633 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
@@ -940,7 +940,5 @@ int vmw_kms_sou_init_display(struct vmw_private *dev_priv)
dev_priv->active_display_unit = vmw_du_screen_object;
- drm_mode_config_reset(dev);
-
- return 0;
+ return drm_mode_config_create_initial_state(dev);
}
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
index b505f8ba3e83..80defd735813 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
@@ -1709,6 +1709,4 @@ int vmw_kms_stdu_init_display(struct vmw_private *dev_priv)
}
- drm_mode_config_reset(dev);
-
- return 0;
+ return drm_mode_config_create_initial_state(dev);
}
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 82/83] drm/xen: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (81 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, Oleksandr Andrushchenko
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: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
drivers/gpu/drm/xen/xen_drm_front_kms.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/xen/xen_drm_front_kms.c b/drivers/gpu/drm/xen/xen_drm_front_kms.c
index d193f60fad22..a0287e583a1d 100644
--- a/drivers/gpu/drm/xen/xen_drm_front_kms.c
+++ b/drivers/gpu/drm/xen/xen_drm_front_kms.c
@@ -452,5 +452,7 @@ int xen_drm_front_kms_init(struct xen_drm_front_drm_info *drm_info)
}
- drm_mode_config_reset(dev);
+ ret = drm_mode_config_create_initial_state(dev);
+ if (ret)
+ return ret;
drm_kms_helper_poll_init(dev);
return 0;
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* [PATCH RESEND 83/83] drm/xlnx: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
` (82 preceding siblings ...)
(?)
@ 2026-11-05 15:30 ` Maxime Ripard
-1 siblings, 0 replies; 122+ messages in thread
From: Maxime Ripard @ 2026-11-05 15:30 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann
Cc: Maxime Ripard, dri-devel, Michal Simek, Tomi Valkeinen
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: Michal Simek <michal.simek@amd.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
---
drivers/gpu/drm/xlnx/zynqmp_kms.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/xlnx/zynqmp_kms.c b/drivers/gpu/drm/xlnx/zynqmp_kms.c
index 5274bd3f9078..c123ded46f4c 100644
--- a/drivers/gpu/drm/xlnx/zynqmp_kms.c
+++ b/drivers/gpu/drm/xlnx/zynqmp_kms.c
@@ -525,6 +525,8 @@ int zynqmp_dpsub_drm_init(struct zynqmp_dpsub *dpsub)
drm_kms_helper_poll_init(drm);
- /* Reset all components and register the DRM device. */
- drm_mode_config_reset(drm);
+ /* Create the initial state and register the DRM device. */
+ ret = drm_mode_config_create_initial_state(drm);
+ if (ret)
+ goto err_poll_fini;
ret = drm_dev_register(drm, 0);
--
2.55.0
^ permalink raw reply related [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 47/83] drm/sun4i: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` [PATCH RESEND 47/83] drm/sun4i: " Maxime Ripard
@ 2026-11-05 15:37 ` Chen-Yu Tsai
2026-11-05 20:24 ` sashiko-bot
1 sibling, 0 replies; 122+ messages in thread
From: Chen-Yu Tsai @ 2026-11-05 15:37 UTC (permalink / raw)
To: Maxime Ripard
Cc: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann,
dri-devel, Samuel Holland, linux-sunxi
On Thu, Nov 5, 2026 at 11:33 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] 122+ messages in thread
* Re: [PATCH RESEND 04/83] drm/komeda: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` [PATCH RESEND 04/83] drm/komeda: " Maxime Ripard
@ 2026-11-05 15:46 ` Liviu Dudau
0 siblings, 0 replies; 122+ messages in thread
From: Liviu Dudau @ 2026-11-05 15:46 UTC (permalink / raw)
To: Maxime Ripard
Cc: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann,
dri-devel
On Thu, Nov 05, 2026 at 04:29:13PM +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: Liviu Dudau <liviu.dudau@arm.com>
Best regards,
Liviu
> ---
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> ---
> drivers/gpu/drm/arm/display/komeda/komeda_kms.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
> index faa8b041373a..66854c6cc03f 100644
> --- a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
> +++ b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
> @@ -310,5 +310,7 @@ struct komeda_kms_dev *komeda_kms_attach(struct komeda_dev *mdev)
> goto cleanup_mode_config;
>
> - drm_mode_config_reset(drm);
> + err = drm_mode_config_create_initial_state(drm);
> + if (err)
> + goto cleanup_mode_config;
>
> err = devm_request_irq(drm->dev, mdev->irq,
>
> --
> 2.55.0
>
--
====================
| I would like to |
| fix the world, |
| but they're not |
| giving me the |
\ source code! /
---------------
¯\_(ツ)_/¯
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 05/83] drm/hdlcd: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` [PATCH RESEND 05/83] drm/hdlcd: " Maxime Ripard
@ 2026-11-05 15:46 ` Liviu Dudau
2026-11-05 16:30 ` sashiko-bot
1 sibling, 0 replies; 122+ messages in thread
From: Liviu Dudau @ 2026-11-05 15:46 UTC (permalink / raw)
To: Maxime Ripard
Cc: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann,
dri-devel
On Thu, Nov 05, 2026 at 04:29:14PM +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: Liviu Dudau <liviu.dudau@arm.com>
Best regards,
Liviu
> ---
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> ---
> drivers/gpu/drm/arm/hdlcd_drv.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
> index 340b1bb38bf9..58ee8ad1d2ea 100644
> --- a/drivers/gpu/drm/arm/hdlcd_drv.c
> +++ b/drivers/gpu/drm/arm/hdlcd_drv.c
> @@ -319,5 +319,7 @@ static int hdlcd_probe(struct platform_device *pdev)
> }
>
> - drm_mode_config_reset(drm);
> + ret = drm_mode_config_create_initial_state(drm);
> + if (ret)
> + goto err_vblank;
> drm_kms_helper_poll_init(drm);
>
>
> --
> 2.55.0
>
--
====================
| I would like to |
| fix the world, |
| but they're not |
| giving me the |
\ source code! /
---------------
¯\_(ツ)_/¯
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 06/83] drm/malidp: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` [PATCH RESEND 06/83] drm/malidp: " Maxime Ripard
@ 2026-11-05 15:46 ` Liviu Dudau
0 siblings, 0 replies; 122+ messages in thread
From: Liviu Dudau @ 2026-11-05 15:46 UTC (permalink / raw)
To: Maxime Ripard
Cc: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann,
dri-devel
On Thu, Nov 05, 2026 at 04:29:15PM +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: Liviu Dudau <liviu.dudau@arm.com>
Best regards,
Liviu
> ---
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> ---
> drivers/gpu/drm/arm/malidp_drv.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
> index 23fa942ae4bb..b4e38eba5957 100644
> --- a/drivers/gpu/drm/arm/malidp_drv.c
> +++ b/drivers/gpu/drm/arm/malidp_drv.c
> @@ -857,5 +857,7 @@ static int malidp_bind(struct device *dev)
> pm_runtime_put(dev);
>
> - drm_mode_config_reset(drm);
> + ret = drm_mode_config_create_initial_state(drm);
> + if (ret)
> + goto register_fail;
>
> drm_kms_helper_poll_init(drm);
>
> --
> 2.55.0
>
--
====================
| I would like to |
| fix the world, |
| but they're not |
| giving me the |
\ source code! /
---------------
¯\_(ツ)_/¯
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 53/83] drm/tegra: Switch to drm_mode_config_create_initial_state
2026-11-05 15:30 ` [PATCH RESEND 53/83] drm/tegra: " Maxime Ripard
@ 2026-11-05 15:51 ` Thierry Reding
0 siblings, 0 replies; 122+ messages in thread
From: Thierry Reding @ 2026-11-05 15:51 UTC (permalink / raw)
To: Maxime Ripard
Cc: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann,
dri-devel, Jonathan Hunter, Mikko Perttunen, linux-tegra
[-- Attachment #1: Type: text/plain, Size: 1357 bytes --]
On Thu, Nov 05, 2026 at 04:30:02PM +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: 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(-)
I'd have to check more closely since it's been a while, but I think we
might depend on the reset hooks getting called during probe.
Looking at the implementation of drm_mode_config_create_initial_state(),
it ends up calling drm_mode_config_connector_create_state(), which
silently exists if the connector doesn't implement atomic_create_state,
which none of the Tegra connectors do, so wouldn't that lead to a NULL
pointer dereference at some point?
Thierry
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 26/83] drm/meson: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
@ 2026-11-05 15:52 ` neil.armstrong
-1 siblings, 0 replies; 122+ messages in thread
From: neil.armstrong @ 2026-11-05 15:52 UTC (permalink / raw)
To: Maxime Ripard, David Airlie, Maarten Lankhorst, Simona Vetter,
Thomas Zimmermann
Cc: dri-devel, Jerome Brunet, Kevin Hilman, Martin Blumenstingl,
linux-amlogic
On 11/5/26 16:29, 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: 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);
>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Thanks,
Neil
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 26/83] drm/meson: Switch to drm_mode_config_create_initial_state
@ 2026-11-05 15:52 ` neil.armstrong
0 siblings, 0 replies; 122+ messages in thread
From: neil.armstrong @ 2026-11-05 15:52 UTC (permalink / raw)
To: Maxime Ripard, David Airlie, Maarten Lankhorst, Simona Vetter,
Thomas Zimmermann
Cc: dri-devel, Jerome Brunet, Kevin Hilman, Martin Blumenstingl,
linux-amlogic
On 11/5/26 16:29, 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: 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);
>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Thanks,
Neil
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 43/83] drm/ssd130x: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` [PATCH RESEND 43/83] drm/ssd130x: " Maxime Ripard
@ 2026-11-05 15:53 ` Javier Martinez Canillas
0 siblings, 0 replies; 122+ messages in thread
From: Javier Martinez Canillas @ 2026-11-05 15:53 UTC (permalink / raw)
To: Maxime Ripard, David Airlie, Maarten Lankhorst, Simona Vetter,
Thomas Zimmermann
Cc: Maxime Ripard, dri-devel
Maxime Ripard <mripard@kernel.org> writes:
> 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: Javier Martinez Canillas <javierm@redhat.com>
--
Best regards,
Javier Martinez Canillas
Core Platforms
Red Hat
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 48/83] drm/corebootdrm: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` [PATCH RESEND 48/83] drm/corebootdrm: " Maxime Ripard
@ 2026-11-05 15:54 ` Javier Martinez Canillas
0 siblings, 0 replies; 122+ messages in thread
From: Javier Martinez Canillas @ 2026-11-05 15:54 UTC (permalink / raw)
To: Maxime Ripard, David Airlie, Maarten Lankhorst, Simona Vetter,
Thomas Zimmermann
Cc: Maxime Ripard, dri-devel
Maxime Ripard <mripard@kernel.org> writes:
> 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: Javier Martinez Canillas <javierm@redhat.com>
--
Best regards,
Javier Martinez Canillas
Core Platforms
Red Hat
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 49/83] drm/efidrm: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` [PATCH RESEND 49/83] drm/efidrm: " Maxime Ripard
@ 2026-11-05 15:55 ` Javier Martinez Canillas
0 siblings, 0 replies; 122+ messages in thread
From: Javier Martinez Canillas @ 2026-11-05 15:55 UTC (permalink / raw)
To: Maxime Ripard, David Airlie, Maarten Lankhorst, Simona Vetter,
Thomas Zimmermann
Cc: Maxime Ripard, dri-devel
Maxime Ripard <mripard@kernel.org> writes:
> 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: Javier Martinez Canillas <javierm@redhat.com>
--
Best regards,
Javier Martinez Canillas
Core Platforms
Red Hat
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 20/83] drm/ingenic: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` [PATCH RESEND 20/83] drm/ingenic: " Maxime Ripard
@ 2026-11-05 15:56 ` Paul Cercueil
2026-11-05 18:12 ` sashiko-bot
1 sibling, 0 replies; 122+ messages in thread
From: Paul Cercueil @ 2026-11-05 15:56 UTC (permalink / raw)
To: Maxime Ripard, David Airlie, Maarten Lankhorst, Simona Vetter,
Thomas Zimmermann
Cc: dri-devel, linux-mips
Hi Maxime,
Le jeudi 05 novembre 2026 à 16:29 +0100, Maxime Ripard a écrit :
> 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: Paul Cercueil <paul@crapouillou.net>
Cheers,
-Paul
> ---
> 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);
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 50/83] drm/ofdrm: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` [PATCH RESEND 50/83] drm/ofdrm: " Maxime Ripard
@ 2026-11-05 15:56 ` Javier Martinez Canillas
0 siblings, 0 replies; 122+ messages in thread
From: Javier Martinez Canillas @ 2026-11-05 15:56 UTC (permalink / raw)
To: Maxime Ripard, David Airlie, Maarten Lankhorst, Simona Vetter,
Thomas Zimmermann
Cc: Maxime Ripard, dri-devel
Maxime Ripard <mripard@kernel.org> writes:
> 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: Javier Martinez Canillas <javierm@redhat.com>
> ---
> drivers/gpu/drm/sysfb/ofdrm.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
--
Best regards,
Javier Martinez Canillas
Core Platforms
Red Hat
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 51/83] drm/simpledrm: Switch to drm_mode_config_create_initial_state
2026-11-05 15:30 ` [PATCH RESEND 51/83] drm/simpledrm: " Maxime Ripard
@ 2026-11-05 15:56 ` Javier Martinez Canillas
0 siblings, 0 replies; 122+ messages in thread
From: Javier Martinez Canillas @ 2026-11-05 15:56 UTC (permalink / raw)
To: Maxime Ripard, David Airlie, Maarten Lankhorst, Simona Vetter,
Thomas Zimmermann
Cc: Maxime Ripard, dri-devel
Maxime Ripard <mripard@kernel.org> writes:
> 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: Javier Martinez Canillas <javierm@redhat.com>
> ---
> drivers/gpu/drm/sysfb/simpledrm.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
--
Best regards,
Javier Martinez Canillas
Core Platforms
Red Hat
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 52/83] drm/vesadrm: Switch to drm_mode_config_create_initial_state
2026-11-05 15:30 ` [PATCH RESEND 52/83] drm/vesadrm: " Maxime Ripard
@ 2026-11-05 15:57 ` Javier Martinez Canillas
0 siblings, 0 replies; 122+ messages in thread
From: Javier Martinez Canillas @ 2026-11-05 15:57 UTC (permalink / raw)
To: Maxime Ripard, David Airlie, Maarten Lankhorst, Simona Vetter,
Thomas Zimmermann
Cc: Maxime Ripard, dri-devel
Maxime Ripard <mripard@kernel.org> writes:
> 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: Javier Martinez Canillas <javierm@redhat.com>
> ---
> drivers/gpu/drm/sysfb/vesadrm.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
--
Best regards,
Javier Martinez Canillas
Core Platforms
Red Hat
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 77/83] drm/vc4: Switch to drm_mode_config_create_initial_state
2026-11-05 15:30 ` [PATCH RESEND 77/83] drm/vc4: " Maxime Ripard
@ 2026-11-05 16:06 ` Dave Stevenson
0 siblings, 0 replies; 122+ messages in thread
From: Dave Stevenson @ 2026-11-05 16:06 UTC (permalink / raw)
To: Maxime Ripard
Cc: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann,
dri-devel, Maíra Canal, Raspberry Pi Kernel Maintenance
On Thu, 5 Nov 2026 at 15:34, 'Maxime Ripard' via kernel-list
<kernel-list@raspberrypi.com> 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: Dave Stevenson <dave.stevenson@raspberrypi.com>
> ---
> Cc: "Maíra Canal" <mcanal@igalia.com>
> Cc: Dave Stevenson <dave.stevenson@raspberrypi.com>
> Cc: Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
> ---
> drivers/gpu/drm/vc4/vc4_kms.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c
> index 82a7f2ac4c7e..ab551eb2da50 100644
> --- a/drivers/gpu/drm/vc4/vc4_kms.c
> +++ b/drivers/gpu/drm/vc4/vc4_kms.c
> @@ -1187,5 +1187,7 @@ int vc4_kms_load(struct drm_device *dev)
> return ret;
>
> - drm_mode_config_reset(dev);
> + ret = drm_mode_config_create_initial_state(dev);
> + if (ret)
> + return ret;
>
> drmm_kms_helper_poll_init(dev);
>
> --
> 2.55.0
>
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 05/83] drm/hdlcd: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` [PATCH RESEND 05/83] drm/hdlcd: " Maxime Ripard
2026-11-05 15:46 ` Liviu Dudau
@ 2026-11-05 16:30 ` sashiko-bot
1 sibling, 0 replies; 122+ messages in thread
From: sashiko-bot @ 2026-11-05 16:30 UTC (permalink / raw)
To: Maxime Ripard; +Cc: dri-devel
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] drm/hdlcd: invalid drm_atomic_helper_shutdown() on hdlcd_probe() error path
--
commit 05385ee4b911593ec2d698a13a97eb831b545f6c
Author: Maxime Ripard <mripard@kernel.org>
drm/hdlcd: Switch to drm_mode_config_create_initial_state
This commit replaces the probe-time call to drm_mode_config_reset() in
hdlcd_probe() with drm_mode_config_create_initial_state() and jumps to
err_vblank on error.
> diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
> index 340b1bb38bf92..58ee8ad1d2ea6 100644
> --- a/drivers/gpu/drm/arm/hdlcd_drv.c
> +++ b/drivers/gpu/drm/arm/hdlcd_drv.c
> @@ -318,7 +318,9 @@ static int hdlcd_probe(struct platform_device *pdev)
> aperture_remove_all_conflicting_devices(hdlcd_driver.name);
> }
>
> - drm_mode_config_reset(drm);
> + ret = drm_mode_config_create_initial_state(drm);
> + if (ret)
> + goto err_vblank;
[Severity: Medium]
If drm_mode_config_create_initial_state() fails in hdlcd_probe() in
drivers/gpu/drm/arm/hdlcd_drv.c, jumping to err_vblank disables runtime PM
and falls through to err_pm_active, which calls
drm_atomic_helper_shutdown():
err_vblank:
pm_runtime_disable(drm->dev);
err_pm_active:
drm_atomic_helper_shutdown(drm);
In drm_mode_config_create_initial_state(), initial state objects are
allocated sequentially for private objects, colorops, planes, CRTCs, and
connectors. If state allocation fails before or during
drm_mode_config_crtc_create_state(), hdlcd->crtc.state remains NULL.
Calling drm_atomic_helper_shutdown() then invokes:
drm_atomic_helper_shutdown()
drm_atomic_helper_disable_all()
drm_atomic_get_crtc_state()
drm_atomic_helper_crtc_duplicate_state()
where drm_atomic_helper_crtc_duplicate_state() in
drivers/gpu/drm/drm_atomic_state_helper.c hits:
if (WARN_ON(!crtc->state))
return NULL;
Even if crtc->state was allocated and connector state allocation failed,
drm_atomic_helper_shutdown() attempts an atomic commit on partially
initialized KMS state after pm_runtime_disable() has already disabled
runtime PM (and before any modeset was committed, which also affects the
existing pm_runtime_set_active() and drm_vblank_init() error paths).
Should drm_atomic_helper_shutdown() be avoided on probe error paths where
initial KMS state creation has not completed or runtime PM is already
disabled?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-drm-no-more-config-reset-v1-0-1f58d1e33380@kernel.org?part=5
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 14/83] drm/hisilicon/hibmc: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` [PATCH RESEND 14/83] drm/hisilicon/hibmc: " Maxime Ripard
@ 2026-11-05 17:25 ` sashiko-bot
0 siblings, 0 replies; 122+ messages in thread
From: sashiko-bot @ 2026-11-05 17:25 UTC (permalink / raw)
To: Maxime Ripard; +Cc: dri-devel
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] drm/hisilicon/hibmc: WARN_ON in hibmc_unload() on hibmc_load() error
--
commit 289d0414bb2d6ac0dd51c3f3424d35a2428b1b8c
Author: Maxime Ripard <mripard@kernel.org>
drm/hisilicon/hibmc: Switch to drm_mode_config_create_initial_state
This commit replaces drm_mode_config_reset() with
drm_mode_config_create_initial_state() in hibmc_load() to initialize
the KMS state at probe time.
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> index 602930964e930..236840cb5b3ad 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> @@ -411,8 +411,10 @@ static int hibmc_load(struct drm_device *dev)
> goto err;
> }
>
> - /* reset all the states of crtc/plane/encoder/connector */
> - drm_mode_config_reset(dev);
> + /* Create all the states of crtc/plane/encoder/connector */
> + ret = drm_mode_config_create_initial_state(dev);
> + if (ret)
> + goto err;
[Severity: Medium]
If drm_mode_config_create_initial_state() fails while allocating the plane
or CRTC state in hibmc_load(), jumping to err calls hibmc_unload() while
priv->crtc.state is still NULL:
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c:hibmc_load() {
...
err:
hibmc_unload(dev);
drm_err(dev, "failed to initialize drm driver: %d\n", ret);
return ret;
}
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c:hibmc_unload() {
drm_atomic_helper_shutdown(dev);
}
Since hibmc_kms_init() has already registered priv->crtc on
dev->mode_config.crtc_list, won't the call chain
hibmc_unload()
-> drm_atomic_helper_shutdown()
-> drm_atomic_helper_disable_all()
-> drm_atomic_get_crtc_state()
-> drm_atomic_helper_crtc_duplicate_state()
trigger WARN_ON(!crtc->state) in drm_atomic_helper_crtc_duplicate_state()?
(The earlier error jumps in hibmc_load() for hibmc_kms_init(),
drm_vblank_init(), and hibmc_msi_init() also jump to err and call
hibmc_unload() before drm_mode_config_create_initial_state() has populated
crtc->state.)
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-drm-no-more-config-reset-v1-0-1f58d1e33380@kernel.org?part=14
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 03/83] drm/appletbdrm: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` [PATCH RESEND 03/83] drm/appletbdrm: " Maxime Ripard
@ 2026-11-05 17:41 ` Aditya Garg
0 siblings, 0 replies; 122+ messages in thread
From: Aditya Garg @ 2026-11-05 17:41 UTC (permalink / raw)
To: Maxime Ripard
Cc: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann,
Maxime Ripard, dri-devel, Aun-Ali Zaidi
> On 5 Nov 2026, at 9:00 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: Aditya Garg <aditya.garg@linux.dev>
> ---
> Cc: Aditya Garg <gargaditya08@proton.me>
Pls use my correct email address ;)
> Cc: Aun-Ali Zaidi <admin@kodeit.net>
> ---
> drivers/gpu/drm/tiny/appletbdrm.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/tiny/appletbdrm.c b/drivers/gpu/drm/tiny/appletbdrm.c
> index ebfe37557bfe..73315d538fbb 100644
> --- a/drivers/gpu/drm/tiny/appletbdrm.c
> +++ b/drivers/gpu/drm/tiny/appletbdrm.c
> @@ -730,7 +730,5 @@ static int appletbdrm_setup_mode_config(struct appletbdrm_device *adev)
> }
>
> - drm_mode_config_reset(drm);
> -
> - return 0;
> + return drm_mode_config_create_initial_state(drm);
> }
>
>
> --
> 2.55.0
>
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 20/83] drm/ingenic: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` [PATCH RESEND 20/83] drm/ingenic: " Maxime Ripard
2026-11-05 15:56 ` Paul Cercueil
@ 2026-11-05 18:12 ` sashiko-bot
1 sibling, 0 replies; 122+ messages in thread
From: sashiko-bot @ 2026-11-05 18:12 UTC (permalink / raw)
To: Maxime Ripard; +Cc: dri-devel
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] drm/ingenic: drm_mode_config_create_initial_state() called before private_obj
--
commit 7ffae382d87f4623df938c8f5b08713c0f72e24e
Author: Maxime Ripard <mripard@kernel.org>
drm/ingenic: Switch to drm_mode_config_create_initial_state
This commit replaces the probe-time call to drm_mode_config_reset() in
ingenic_drm_bind() with drm_mode_config_create_initial_state() and checks
its return value.
> diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
> index 625ec76cf04d8..63198fd594984 100644
> --- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
> +++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
> @@ -1354,7 +1354,9 @@ static int ingenic_drm_bind(struct device *dev, bool has_components)
> goto err_drvdata;
> }
>
> - drm_mode_config_reset(drm);
> + ret = drm_mode_config_create_initial_state(drm);
> + if (ret)
> + goto err_drvdata;
[Severity: Medium]
Should drm_mode_config_create_initial_state(drm) be called after
priv->private_obj is initialized with drm_atomic_private_obj_init(), or
should drm_atomic_private_obj_init() be moved before this call?
In drivers/gpu/drm/drm_mode_config.c, drm_mode_config_create_initial_state()
iterates over dev->mode_config.privobj_list to allocate the initial state for
registered private objects and propagate any allocation error:
drivers/gpu/drm/drm_mode_config.c:drm_mode_config_create_initial_state() {
drm_for_each_privobj(privobj, dev) {
struct drm_private_state *privobj_state;
if (privobj->state)
continue;
if (!privobj->funcs->atomic_create_state)
continue;
privobj_state = privobj->funcs->atomic_create_state(privobj);
if (IS_ERR(privobj_state))
return PTR_ERR(privobj_state);
privobj->state = privobj_state;
}
...
}
In drivers/gpu/drm/ingenic/ingenic-drm-drv.c, ingenic_drm_bind() currently
initializes priv->private_obj later in the function without checking its
return value:
drivers/gpu/drm/ingenic/ingenic-drm-drv.c:ingenic_drm_bind() {
...
ret = drm_mode_config_create_initial_state(drm);
if (ret)
goto err_drvdata;
...
drm_atomic_private_obj_init(drm, &priv->private_obj,
&ingenic_drm_private_state_funcs);
...
}
Because priv->private_obj is not yet on drm->mode_config.privobj_list when
drm_mode_config_create_initial_state(drm) runs, it is skipped. If
ingenic_drm_create_state() fails with -ENOMEM during
drm_atomic_private_obj_init() (or once drm_atomic_private_obj_init() stops
allocating state directly), priv->private_obj is left on
drm->mode_config.privobj_list with priv->private_obj.state set to NULL.
When the first atomic commit duplicates the private state (for example via
drm_client_setup()), ingenic_drm_duplicate_state() will dereference NULL:
drivers/gpu/drm/ingenic/ingenic-drm-drv.c:ingenic_drm_duplicate_state() {
struct ingenic_drm_private_state *state = to_ingenic_drm_priv_state(obj->state);
state = kmemdup(state, sizeof(*state), GFP_KERNEL);
...
}
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-drm-no-more-config-reset-v1-0-1f58d1e33380@kernel.org?part=20
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 23/83] drm/loongson: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` [PATCH RESEND 23/83] drm/loongson: " Maxime Ripard
@ 2026-11-05 18:28 ` sashiko-bot
0 siblings, 0 replies; 122+ messages in thread
From: sashiko-bot @ 2026-11-05 18:28 UTC (permalink / raw)
To: Maxime Ripard; +Cc: dri-devel
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] drm/loongson: skipped CRTC and encoder hardware reset in lsdc_create_device()
--
commit 648f0256277cc04b62e3a2eb71b3474bb1ab8054
Author: Maxime Ripard <mripard@kernel.org>
drm/loongson: Switch to drm_mode_config_create_initial_state
This commit replaces drm_mode_config_reset() with
drm_mode_config_create_initial_state() in lsdc_create_device() during probe.
> diff --git a/drivers/gpu/drm/loongson/lsdc_drv.c b/drivers/gpu/drm/loongson/lsdc_drv.c
> index 5a13df31eb902..fbb2658acce40 100644
> --- a/drivers/gpu/drm/loongson/lsdc_drv.c
> +++ b/drivers/gpu/drm/loongson/lsdc_drv.c
> @@ -247,7 +247,9 @@ lsdc_create_device(struct pci_dev *pdev,
> if (ret)
> return ERR_PTR(ret);
>
> - drm_mode_config_reset(ddev);
> + ret = drm_mode_config_create_initial_state(ddev);
> + if (ret)
> + return ERR_PTR(ret);
[Severity: High]
Does switching from drm_mode_config_reset() to
drm_mode_config_create_initial_state() in lsdc_create_device() skip required
CRTC and encoder hardware initialization at probe time?
Unlike drm_mode_config_reset(), drm_mode_config_create_initial_state() does
not invoke crtc->helper_private->hw_reset() or encoder->funcs->reset().
In drivers/gpu/drm/loongson/lsdc_crtc.c, lsdc_crtc_hw_reset() calls
lsdc_crtc0_reset() and lsdc_crtc1_reset():
static void lsdc_crtc0_reset(struct lsdc_crtc *lcrtc)
{
struct lsdc_device *ldev = lcrtc->ldev;
lsdc_wreg32(ldev, LSDC_CRTC0_CFG_REG, CFG_RESET_N | LSDC_PF_XRGB8888);
}
Other runtime accesses to LSDC_CRTC0_CFG_REG and LSDC_CRTC1_CFG_REG during
modeset and plane updates (such as lsdc_crtc0_enable(), lsdc_crtc0_disable(),
lsdc_crtc0_set_dma_step(), and lsdc_primary0_update_fb_format()) perform
read-modify-write operations that neither assert CFG_RESET_N nor clear stale
firmware bits such as CFG_HW_CLONE or CFG_GAMMA_EN.
In addition, the encoder reset hooks in
drivers/gpu/drm/loongson/lsdc_output_7a1000.c and
drivers/gpu/drm/loongson/lsdc_output_7a2000.c are the only places in the
driver that program LSDC_CRTC0_DVO_CONF_REG and LSDC_CRTC1_DVO_CONF_REG:
static void ls7a2000_hdmi0_encoder_reset(struct drm_encoder *encoder)
{
struct drm_device *ddev = encoder->dev;
struct lsdc_device *ldev = to_lsdc(ddev);
u32 val;
val = PHY_CLOCK_POL | PHY_CLOCK_EN | PHY_DATA_EN;
lsdc_wreg32(ldev, LSDC_CRTC0_DVO_CONF_REG, val);
/* using software gpio emulated i2c */
val = lsdc_rreg32(ldev, LSDC_HDMI0_INTF_CTRL_REG);
val &= ~HW_I2C_EN;
lsdc_wreg32(ldev, LSDC_HDMI0_INTF_CTRL_REG, val);
/* help the hdmi phy to get out of reset state */
lsdc_wreg32(ldev, LSDC_HDMI0_PHY_CTRL_REG, HDMI_PHY_RESET_N);
mdelay(20);
}
On LS7A2000, skipping ls7a2000_hdmi0_encoder_reset() and
ls7a2000_hdmi1_encoder_reset() at probe time also leaves HW_I2C_EN set in
LSDC_HDMI0_INTF_CTRL_REG and LSDC_HDMI1_INTF_CTRL_REG and leaves the HDMI PHY
in reset, breaking software GPIO-emulated I2C DDC probing in
ls7a2000_hdmi0_vga_connector_detect() and ls7a2000_connector_get_modes()
before any atomic enable commit runs.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-drm-no-more-config-reset-v1-0-1f58d1e33380@kernel.org?part=23
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 38/83] drm/rockchip: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` Maxime Ripard
@ 2026-11-05 19:05 ` Heiko Stübner
-1 siblings, 0 replies; 122+ messages in thread
From: Heiko Stübner @ 2026-11-05 19:05 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann,
Maxime Ripard
Cc: Maxime Ripard, dri-devel, Sandy Huang, linux-rockchip, Andy Yan
Am Donnerstag, 5. November 2026, 16:29:47 Mitteleuropäische Normalzeit schrieb Maxime Ripard:
> 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: Heiko Stuebner <heiko@sntech.de>
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 38/83] drm/rockchip: Switch to drm_mode_config_create_initial_state
@ 2026-11-05 19:05 ` Heiko Stübner
0 siblings, 0 replies; 122+ messages in thread
From: Heiko Stübner @ 2026-11-05 19:05 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann,
Maxime Ripard
Cc: Maxime Ripard, dri-devel, Sandy Huang, linux-rockchip, Andy Yan
Am Donnerstag, 5. November 2026, 16:29:47 Mitteleuropäische Normalzeit schrieb Maxime Ripard:
> 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: Heiko Stuebner <heiko@sntech.de>
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 34/83] drm/qxl: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` [PATCH RESEND 34/83] drm/qxl: " Maxime Ripard
@ 2026-11-05 19:32 ` sashiko-bot
0 siblings, 0 replies; 122+ messages in thread
From: sashiko-bot @ 2026-11-05 19:32 UTC (permalink / raw)
To: Maxime Ripard
Cc: dri-devel, virtualization, Michael S. Tsirkin, Eugenio Perez
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] drm/qxl: missing monitors object cleanup and UAF in qxl_modeset_init()
--
commit c9a17dafeda120436479a0975b3829acefce4188
Author: Maxime Ripard <mripard@kernel.org>
drm/qxl: Switch to drm_mode_config_create_initial_state
This commit replaces drm_mode_config_reset() with
drm_mode_config_create_initial_state() in qxl_modeset_init() to handle initial
KMS state creation at probe time.
> diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c
> index 204c47d613732..7f719e200d317 100644
> --- a/drivers/gpu/drm/qxl/qxl_display.c
> +++ b/drivers/gpu/drm/qxl/qxl_display.c
> @@ -1312,8 +1312,7 @@ int qxl_modeset_init(struct qxl_device *qdev)
> if (ret)
> return ret;
>
> - drm_mode_config_reset(&qdev->ddev);
> - return 0;
> + return drm_mode_config_create_initial_state(&qdev->ddev);
> }
[Severity: High]
If drm_mode_config_create_initial_state() fails and returns an error here, can
this cause a use-after-free of qdev->monitors_config_bo and an unmapped MMIO
write to qdev->ram_header->monitors_config during probe teardown?
Earlier in qxl_modeset_init(), qxl_create_monitors_object() allocates, pins,
and vmaps qdev->monitors_config_bo, sets qdev->ram_header->monitors_config,
and allocates qdev->dumb_heads.
When qxl_modeset_init() returns an error to qxl_pci_probe(), the error path
jumps past qxl_modeset_fini() directly to the unload label:
drivers/gpu/drm/qxl/qxl_drv.c:qxl_pci_probe() {
...
ret = qxl_modeset_init(qdev);
if (ret)
goto unload;
...
poll_fini:
drm_kms_helper_poll_fini(&qdev->ddev);
qxl_modeset_fini(qdev);
unload:
qxl_device_fini(qdev);
}
In qxl_device_fini(), qxl_gem_fini() -> qxl_bo_force_delete() force-frees
qdev->monitors_config_bo while it is still pinned and vmapped (triggering
WARN_ON_ONCE(bo->map_count > 0) in qxl_ttm_bo_destroy() and leaving the
qdev->monitors_config_bo pointer non-NULL), and iounmap() unmaps
qdev->ram_header.
When qxl_pci_probe() then returns the error code, devres cleanup for
devm_drm_dev_alloc() runs qxl_drm_release() -> qxl_modeset_fini() ->
qxl_destroy_monitors_object():
drivers/gpu/drm/qxl/qxl_display.c:qxl_destroy_monitors_object() {
if (!qdev->monitors_config_bo)
return 0;
...
qdev->ram_header->monitors_config = 0;
ret = qxl_bo_vunmap_and_unpin(qdev->monitors_config_bo);
if (ret)
return ret;
qxl_bo_unref(&qdev->monitors_config_bo);
return 0;
}
Because qdev->monitors_config_bo is still non-NULL, should qxl_modeset_init()
call qxl_destroy_monitors_object(qdev) on failure before returning?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-drm-no-more-config-reset-v1-0-1f58d1e33380@kernel.org?part=34
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 15/83] drm/hisilicon/kirin: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` [PATCH RESEND 15/83] drm/hisilicon/kirin: " Maxime Ripard
@ 2026-11-05 19:35 ` John Stultz
0 siblings, 0 replies; 122+ messages in thread
From: John Stultz @ 2026-11-05 19:35 UTC (permalink / raw)
To: Maxime Ripard
Cc: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann,
dri-devel, Sumit Semwal, Xinliang Liu, Yongqin Liu
On Thu, Nov 5, 2026 at 7:31 AM 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>
No objections from me, though I don't have the hardware anymore to test.
Acked-by: John Stultz <jstultz@google.com>
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 45/83] drm/sti: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` [PATCH RESEND 45/83] drm/sti: " Maxime Ripard
@ 2026-11-05 20:07 ` sashiko-bot
0 siblings, 0 replies; 122+ messages in thread
From: sashiko-bot @ 2026-11-05 20:07 UTC (permalink / raw)
To: Maxime Ripard; +Cc: dri-devel
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] drm/sti: late initial state creation and broken error unwind in sti_bind()
--
commit 90a65d66556bc446b84f7842f4301480a5997e74
Author: Maxime Ripard <mripard@kernel.org>
drm/sti: Switch to drm_mode_config_create_initial_state
This commit replaces the call to drm_mode_config_reset() in sti_bind() with
drm_mode_config_create_initial_state() and adds an error path to unregister
the DRM device if initial state creation fails.
> diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c
> index d02d71866f2a9..0ca6c6b41f18d 100644
> --- a/drivers/gpu/drm/sti/sti_drv.c
> +++ b/drivers/gpu/drm/sti/sti_drv.c
> @@ -202,12 +202,16 @@ static int sti_bind(struct device *dev)
> if (ret)
> goto err_cleanup;
>
> - drm_mode_config_reset(ddev);
> + ret = drm_mode_config_create_initial_state(ddev);
> + if (ret)
> + goto err_unregister;
>
> drm_client_setup(ddev, NULL);
>
> return 0;
>
> +err_unregister:
> + drm_dev_unregister(ddev);
> err_cleanup:
> sti_cleanup(ddev);
[Severity: High]
If drm_mode_config_create_initial_state() fails in sti_bind() (for example,
when plane or CRTC state allocation fails with -ENOMEM), jumping to
err_unregister and falling through to err_cleanup calls sti_cleanup():
drivers/gpu/drm/sti/sti_drv.c:sti_cleanup() {
...
drm_kms_helper_poll_fini(ddev);
drm_atomic_helper_shutdown(ddev);
drm_mode_config_cleanup(ddev);
...
}
Because crtc->state is still NULL when initial state creation fails before
allocating CRTC states (or when drm_dev_register() fails before initial state
creation is reached), does calling
sti_cleanup() -> drm_atomic_helper_shutdown() ->
drm_atomic_helper_disable_all() -> drm_atomic_get_crtc_state() ->
drm_atomic_helper_crtc_duplicate_state() trigger a WARN_ON(!crtc->state) and
cause drm_atomic_helper_shutdown() to fail?
In addition, in sti_bind(), drm_dev_register() is called right before
drm_mode_config_create_initial_state():
drivers/gpu/drm/sti/sti_drv.c:sti_bind() {
...
ret = drm_dev_register(ddev, 0);
if (ret)
goto err_cleanup;
ret = drm_mode_config_create_initial_state(ddev);
if (ret)
goto err_unregister;
...
}
Since drm_dev_register() exposes the DRM device nodes and connector sysfs
attributes to userspace while plane->state, crtc->state, and
connector->state are still NULL, and drm_mode_config_create_initial_state()
subsequently populates those state pointers without holding modeset locks,
can a userspace process opening the device right after registration trigger
a NULL pointer dereference in drm_mode_object_get_properties() ->
drm_atomic_get_property()?
Should drm_mode_config_create_initial_state() be called before
drm_dev_register(), and should drm_atomic_helper_shutdown() be avoided on
error paths where initial modeset state has not been fully created?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-drm-no-more-config-reset-v1-0-1f58d1e33380@kernel.org?part=45
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 46/83] drm/stm: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` [PATCH RESEND 46/83] drm/stm: " Maxime Ripard
@ 2026-11-05 20:15 ` sashiko-bot
0 siblings, 0 replies; 122+ messages in thread
From: sashiko-bot @ 2026-11-05 20:15 UTC (permalink / raw)
To: Maxime Ripard; +Cc: dri-devel
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] drm/stm: missing ltdc_unload() on initial state failure in drv_load()
--
commit 98591c9473b768ebdd97e226182eb80066137927
Author: Maxime Ripard <mripard@kernel.org>
drm/stm: Switch to drm_mode_config_create_initial_state
This commit replaces the probe-time drm_mode_config_reset() call in drv_load()
with drm_mode_config_create_initial_state() and propagates any error returned
during initial KMS state creation.
> diff --git a/drivers/gpu/drm/stm/drv.c b/drivers/gpu/drm/stm/drv.c
> index 0967b9b3451db..60343ffe02f7d 100644
> --- a/drivers/gpu/drm/stm/drv.c
> +++ b/drivers/gpu/drm/stm/drv.c
> @@ -104,7 +104,9 @@ static int drv_load(struct drm_device *ddev)
> if (ret)
> return ret;
>
> - drm_mode_config_reset(ddev);
> + ret = drm_mode_config_create_initial_state(ddev);
> + if (ret)
> + return ret;
[Severity: Medium]
If drm_mode_config_create_initial_state() fails in drv_load() after
ltdc_load() has already succeeded, does this leave runtime PM enabled on
ddev->dev without calling ltdc_unload()?
In drivers/gpu/drm/stm/ltdc.c, ltdc_load() enables runtime PM via an
unmanaged call before returning:
ltdc_load()
pm_runtime_enable(ddev->dev);
return 0;
When drv_load() returns an error, stm_drm_platform_probe() in
drivers/gpu/drm/stm/drv.c jumps to err_put, bypassing drv_unload() and
ltdc_unload():
stm_drm_platform_probe()
ret = drv_load(ddev);
if (ret)
goto err_put;
ret = drm_dev_register(ddev, 0);
if (ret)
goto err_unload;
...
err_unload:
drv_unload(ddev);
err_put:
drm_dev_put(ddev);
Because platform_set_drvdata() is not reached in drv_load() on this failure
path and runtime PM remains enabled while ddev is freed, a runtime PM callback
running before unbind completes could also see a NULL ddev from
dev_get_drvdata(dev) in drv_runtime_suspend() or drv_runtime_resume().
Should drv_load() call ltdc_unload(ddev) on error if
drm_mode_config_create_initial_state() fails?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-drm-no-more-config-reset-v1-0-1f58d1e33380@kernel.org?part=46
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 47/83] drm/sun4i: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 ` [PATCH RESEND 47/83] drm/sun4i: " Maxime Ripard
2026-11-05 15:37 ` Chen-Yu Tsai
@ 2026-11-05 20:24 ` sashiko-bot
1 sibling, 0 replies; 122+ messages in thread
From: sashiko-bot @ 2026-11-05 20:24 UTC (permalink / raw)
To: Maxime Ripard; +Cc: dri-devel, linux-sunxi
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] drm/sun4i: sun4i_framebuffer_init() ignores state creation failure
--
commit 9bfddf90d8dccabe2d26ebb9b512f7adbc95c198
Author: Maxime Ripard <mripard@kernel.org>
drm/sun4i: Switch to drm_mode_config_create_initial_state
This commit replaces the probe-time drm_mode_config_reset() call in
sun4i_framebuffer_init() with drm_mode_config_create_initial_state() to
create the initial KMS state.
> diff --git a/drivers/gpu/drm/sun4i/sun4i_framebuffer.c b/drivers/gpu/drm/sun4i/sun4i_framebuffer.c
> index fc822bc2c62b5..0ce3691dedade 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_framebuffer.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_framebuffer.c
> @@ -10,6 +10,7 @@
> #include <drm/drm_atomic_helper.h>
> #include <drm/drm_blend.h>
> #include <drm/drm_gem_framebuffer_helper.h>
> +#include <drm/drm_print.h>
>
> #include "sun4i_drv.h"
> #include "sun4i_framebuffer.h"
> @@ -26,7 +27,8 @@ 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");
[Severity: High]
Should sun4i_framebuffer_init() return an int and propagate errors from
drm_mode_config_create_initial_state(drm) back to sun4i_drv_bind()?
When drm_mode_config_create_initial_state(drm) fails to allocate state for a
private object, colorop, plane, CRTC, or connector, it returns early with a
negative errno, leaving that object and all subsequent KMS objects with a
NULL state pointer.
Because sun4i_framebuffer_init() only warns and returns void, its caller
sun4i_drv_bind() in drivers/gpu/drm/sun4i/sun4i_drv.c continues execution:
sun4i_framebuffer_init(drm);
/* Enable connectors polling */
drm_kms_helper_poll_init(drm);
ret = drm_dev_register(drm, 0);
if (ret)
goto finish_poll;
drm_client_setup(drm, NULL);
When drm_client_setup(), a userspace atomic commit, or
drm_atomic_helper_shutdown() duplicates plane state via
sun4i_backend_layer_duplicate_state() in drivers/gpu/drm/sun4i/sun4i_layer.c,
plane->state is dereferenced without a NULL check:
struct sun4i_layer_state *orig = state_to_sun4i_layer_state(plane->state);
struct sun4i_layer_state *copy;
copy = kzalloc_obj(*copy);
if (!copy)
return NULL;
__drm_atomic_helper_plane_duplicate_state(plane, ©->state);
copy->uses_frontend = orig->uses_frontend;
Could this cause a NULL pointer dereference in
__drm_atomic_helper_plane_duplicate_state(), orig->uses_frontend, or during
userspace property queries via drm_atomic_get_property() if
sun4i_drv_bind() does not abort and jump to unbind_all on state creation
failure?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-drm-no-more-config-reset-v1-0-1f58d1e33380@kernel.org?part=47
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 54/83] drm/tests: drm_atomic_state_test: Switch to drm_mode_config_create_initial_state
2026-11-05 15:30 ` [PATCH RESEND 54/83] drm/tests: drm_atomic_state_test: " Maxime Ripard
@ 2026-11-05 20:46 ` sashiko-bot
0 siblings, 0 replies; 122+ messages in thread
From: sashiko-bot @ 2026-11-05 20:46 UTC (permalink / raw)
To: Maxime Ripard; +Cc: dri-devel
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] drm/tests: error pointer dereference in drm_atomic_commit_test callers
--
commit bf780a2e8e49270edd5c0a0b1f92ae2a80dbb4a2
Author: Maxime Ripard <mripard@kernel.org>
drm/tests: drm_atomic_state_test: Switch to drm_mode_config_create_initial_state
This commit replaces the call to drm_mode_config_reset() in
drm_atomic_test_init_drm_components() with
drm_mode_config_create_initial_state() to initialize KMS state for the atomic
commit KUnit tests.
> diff --git a/drivers/gpu/drm/tests/drm_atomic_commit_test.c b/drivers/gpu/drm/tests/drm_atomic_commit_test.c
> index 6ccb001f6264b..97f60ce68b3e4 100644
> --- a/drivers/gpu/drm/tests/drm_atomic_commit_test.c
> +++ b/drivers/gpu/drm/tests/drm_atomic_commit_test.c
> @@ -134,7 +134,9 @@ drm_atomic_test_init_drm_components(struct kunit *test, bool has_connectors)
> }
>
> done:
> - drm_mode_config_reset(drm);
> + ret = drm_mode_config_create_initial_state(drm);
> + if (ret)
> + return ERR_PTR(ret);
>
> return priv;
> }
[Severity: Medium]
Can returning ERR_PTR(ret) here lead to an error pointer dereference in the
callers of drm_atomic_test_init_drm_components()?
Both drm_test_check_connector_changed_modeset() and
drm_test_check_valid_clones() only check the returned pointer with
KUNIT_ASSERT_NOT_NULL():
priv = drm_atomic_test_init_drm_components(test, true);
KUNIT_ASSERT_NOT_NULL(test, priv);
If drm_mode_config_create_initial_state() returns a negative error code,
ERR_PTR(ret) will pass the KUNIT_ASSERT_NOT_NULL() check and be dereferenced
in set_up_atomic_state().
Every other failure check in drm_atomic_test_init_drm_components() uses
KUNIT_ASSERT_NOT_ERR_OR_NULL() or KUNIT_ASSERT_EQ(test, ret, 0) to abort the
test immediately. Should this check use KUNIT_ASSERT_EQ(test, ret, 0) as well,
or should the callers be updated to use KUNIT_ASSERT_NOT_ERR_OR_NULL()?
Also, this isn't a bug, but the commit subject prefix says
drm_atomic_state_test while the modified file is drm_atomic_commit_test.c.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-drm-no-more-config-reset-v1-0-1f58d1e33380@kernel.org?part=54
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 57/83] drm/tests: drm_hdmi_state_helper_test: Switch to drm_mode_config_create_initial_state
2026-11-05 15:30 ` [PATCH RESEND 57/83] drm/tests: drm_hdmi_state_helper_test: " Maxime Ripard
@ 2026-11-05 21:01 ` sashiko-bot
0 siblings, 0 replies; 122+ messages in thread
From: sashiko-bot @ 2026-11-05 21:01 UTC (permalink / raw)
To: Maxime Ripard; +Cc: dri-devel
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] drm/tests: error pointer dereference on __connector_hdmi_init() failure
--
commit f0f9a8e1f22f0d1c095eb10619c56e34cb056f4b
Author: Maxime Ripard <mripard@kernel.org>
drm/tests: drm_hdmi_state_helper_test: Switch to drm_mode_config_create_initial_state
This commit replaces the call to drm_mode_config_reset() in
__connector_hdmi_init() with drm_mode_config_create_initial_state() to
initialize the KMS state for the HDMI connector state helper KUnit tests.
> diff --git a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
> index 336bb644cb7c9..99a0fa479704d 100644
> --- a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
> +++ b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
> @@ -297,7 +297,9 @@ __connector_hdmi_init(struct kunit *test,
> drm_connector_helper_add(conn, &dummy_connector_helper_funcs);
> drm_connector_attach_encoder(conn, enc);
>
> - drm_mode_config_reset(drm);
> + ret = drm_mode_config_create_initial_state(drm);
> + if (ret)
> + return ERR_PTR(ret);
[Severity: Medium]
If drm_mode_config_create_initial_state() fails here in
__connector_hdmi_init(), won't returning ERR_PTR(ret) cause the callers to
dereference an error pointer?
All the other initialization checks in __connector_hdmi_init() abort the test
immediately via KUNIT_ASSERT_*() macros rather than returning an error
pointer:
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c:__connector_hdmi_init() {
...
ret = drmm_connector_hdmi_ini2(drm, conn,
"Vendor", "Product",
&dummy_connector_funcs,
hdmi_funcs,
DRM_MODE_CONNECTOR_HDMIA,
NULL,
formats,
max_bpc);
KUNIT_ASSERT_EQ(test, ret, 0);
...
}
Because __connector_hdmi_init() previously never returned an ERR_PTR, the test
cases calling drm_kunit_helper_connector_hdmi_init() and
drm_kunit_helper_connector_hdmi_init_with_edid_funcs() (such as
drm_test_check_broadcast_rgb_crtc_mode_changed()) only check for NULL before
dereferencing priv:
priv = drm_kunit_helper_connector_hdmi_init(test,
BIT(DRM_OUTPUT_COLOR_FORMAT_RGB444),
8);
KUNIT_ASSERT_NOT_NULL(test, priv);
drm = &priv->drm;
crtc = priv->crtc;
Should __connector_hdmi_init() use KUNIT_ASSERT_EQ(test, ret, 0) instead of
returning ERR_PTR(ret)?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-drm-no-more-config-reset-v1-0-1f58d1e33380@kernel.org?part=57
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 59/83] drm/tilcdc: Switch to drm_mode_config_create_initial_state
2026-11-05 15:30 ` [PATCH RESEND 59/83] drm/tilcdc: " Maxime Ripard
@ 2026-11-05 21:19 ` sashiko-bot
0 siblings, 0 replies; 122+ messages in thread
From: sashiko-bot @ 2026-11-05 21:19 UTC (permalink / raw)
To: Maxime Ripard; +Cc: dri-devel
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] drm/tilcdc: skipped tilcdc_crtc_hw_reset() in tilcdc_pdev_probe()
--
commit a7aa194e686d4c29674928aee2622cefc3bf4547
Author: Maxime Ripard <mripard@kernel.org>
drm/tilcdc: Switch to drm_mode_config_create_initial_state
This commit replaces drm_mode_config_reset() with
drm_mode_config_create_initial_state() in tilcdc_pdev_probe() to separate
initial KMS state creation at probe time from suspend/resume resets.
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> index 1d6c9a423a410..da718d9cb1d69 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> @@ -422,7 +422,9 @@ static int tilcdc_pdev_probe(struct platform_device *pdev)
> goto unregister_cpufreq_notif;
> }
>
> - drm_mode_config_reset(ddev);
> + ret = drm_mode_config_create_initial_state(ddev);
> + if (ret)
> + goto stop_poll;
[Severity: High]
Does replacing drm_mode_config_reset() with
drm_mode_config_create_initial_state() in tilcdc_pdev_probe() skip calling
tilcdc_crtc_hw_reset() at probe time?
In drivers/gpu/drm/tilcdc/tilcdc_crtc.c, tilcdc_crtc_hw_reset() is
registered as the drm_crtc_helper_funcs.hw_reset callback to turn off the
LCDC raster if the bootloader left it enabled, synchronizing the hardware
with the initial disabled software CRTC state:
drivers/gpu/drm/tilcdc/tilcdc_crtc.c:tilcdc_crtc_hw_reset() {
/* Turn the raster off if it for some reason is on. */
pm_runtime_get_sync(dev->dev);
if (tilcdc_read(dev, LCDC_RASTER_CTRL_REG) & LCDC_RASTER_ENABLE) {
/* Enable DMA Frame Done Interrupt */
tilcdc_write(dev, LCDC_INT_ENABLE_SET_REG, LCDC_FRAME_DONE);
tilcdc_clear_irqstatus(dev, 0xffffffff);
tilcdc_crtc->frame_done = false;
tilcdc_clear(dev, LCDC_RASTER_CTRL_REG, LCDC_RASTER_ENABLE);
...
}
pm_runtime_put_sync(dev->dev);
}
This logic was added in commit 46a956ab3c5b ("drm/tilcdc: Turn raster off
in crtc reset, if it was on in the HW") and moved to the hw_reset hook in
commit 6e531fda1d6b ("drm/tilcdc: Move hardware reset to hw_reset hook").
Previously, tilcdc_pdev_probe() called drm_mode_config_reset() right after
tilcdc_irq_install(), which ran
drm_mode_config_crtc_reset_with_create_state() ->
helper_funcs->hw_reset(crtc).
However, drm_mode_config_create_initial_state() calls
drm_mode_config_crtc_create_state() directly without invoking
helper_funcs->hw_reset(crtc).
If the bootloader leaves LCDC_RASTER_ENABLE active at boot, won't the
hardware raster remain running while crtc->state->active and
tilcdc_crtc->enabled are initialized to false, causing the first modeset in
tilcdc_crtc_atomic_enable() -> tilcdc_crtc_enable() ->
tilcdc_crtc_set_mode() -> tilcdc_crtc_load_palette() to reprogram timings
and palette DMA while the raster is still active?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-drm-no-more-config-reset-v1-0-1f58d1e33380@kernel.org?part=59
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 61/83] drm/bochs: Switch to drm_mode_config_create_initial_state
2026-11-05 15:30 ` [PATCH RESEND 61/83] drm/bochs: " Maxime Ripard
@ 2026-11-05 21:25 ` sashiko-bot
0 siblings, 0 replies; 122+ messages in thread
From: sashiko-bot @ 2026-11-05 21:25 UTC (permalink / raw)
To: Maxime Ripard; +Cc: virtualization, Michael S. Tsirkin, Eugenio Perez
> 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>
Sashiko has reviewed this patch and found no issues.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-drm-no-more-config-reset-v1-0-1f58d1e33380@kernel.org?part=61
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 62/83] drm/cirrus-qemu: Switch to drm_mode_config_create_initial_state
2026-11-05 15:30 ` [PATCH RESEND 62/83] drm/cirrus-qemu: " Maxime Ripard
@ 2026-11-05 21:26 ` sashiko-bot
0 siblings, 0 replies; 122+ messages in thread
From: sashiko-bot @ 2026-11-05 21:26 UTC (permalink / raw)
To: Maxime Ripard; +Cc: virtualization, Michael S. Tsirkin, Eugenio Perez
> 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>
Sashiko has reviewed this patch and found no issues.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-drm-no-more-config-reset-v1-0-1f58d1e33380@kernel.org?part=62
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 79/83] drm/virtio: Switch to drm_mode_config_create_initial_state
2026-11-05 15:30 ` [PATCH RESEND 79/83] drm/virtio: " Maxime Ripard
@ 2026-11-05 22:14 ` sashiko-bot
0 siblings, 0 replies; 122+ messages in thread
From: sashiko-bot @ 2026-11-05 22:14 UTC (permalink / raw)
To: Maxime Ripard; +Cc: virtualization, Michael S. Tsirkin, Eugenio Perez
> 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>
Sashiko has reviewed this patch and found no issues.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-drm-no-more-config-reset-v1-0-1f58d1e33380@kernel.org?part=79
^ permalink raw reply [flat|nested] 122+ messages in thread
* Re: [PATCH RESEND 81/83] drm/vmwgfx: Switch to drm_mode_config_create_initial_state
2026-11-05 15:30 ` [PATCH RESEND 81/83] drm/vmwgfx: " Maxime Ripard
@ 2026-11-05 22:27 ` sashiko-bot
0 siblings, 0 replies; 122+ messages in thread
From: sashiko-bot @ 2026-11-05 22:27 UTC (permalink / raw)
To: Maxime Ripard; +Cc: dri-devel
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] drm/vmwgfx: state creation error in display init triggers broken fallback
--
commit 4961d66508852dc07ab5238728474ad461cb6c65
Author: Maxime Ripard <mripard@kernel.org>
drm/vmwgfx: Switch to drm_mode_config_create_initial_state
This commit replaces calls to drm_mode_config_reset() with
drm_mode_config_create_initial_state() during KMS display unit
initialization in vmwgfx_ldu.c, vmwgfx_scrn.c, and vmwgfx_stdu.c.
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
> index 39d58fc392bf4..82fe7db266335 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
> @@ -939,9 +939,7 @@ int vmw_kms_sou_init_display(struct vmw_private *dev_priv)
>
> dev_priv->active_display_unit = vmw_du_screen_object;
>
> - drm_mode_config_reset(dev);
> -
> - return 0;
> + return drm_mode_config_create_initial_state(dev);
> }
>
> static int do_bo_define_gmrfb(struct vmw_private *dev_priv,
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
> index b505f8ba3e834..80defd7358135 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
> @@ -1708,7 +1708,5 @@ int vmw_kms_stdu_init_display(struct vmw_private *dev_priv)
> }
> }
>
> - drm_mode_config_reset(dev);
> -
> - return 0;
> + return drm_mode_config_create_initial_state(dev);
> }
[Severity: Medium]
What happens in vmw_kms_init() if drm_mode_config_create_initial_state()
fails at the end of vmw_kms_stdu_init_display() or
vmw_kms_sou_init_display()?
Previously, drm_mode_config_reset() returned void, so neither function
returned an error after registering all VMWGFX_NUM_DISPLAY_UNITS (8)
display units on dev->mode_config (and vmw_kms_sou_init_display() only ever
returned -ENOSYS before initializing any display units).
In drivers/gpu/drm/vmwgfx/vmwgfx_kms.c, vmw_kms_init() treats any non-zero
return value as a fallback trigger:
ret = vmw_kms_stdu_init_display(dev_priv);
if (ret) {
ret = vmw_kms_sou_init_display(dev_priv);
if (ret) /* Fallback */
ret = vmw_kms_ldu_init_display(dev_priv);
}
If drm_mode_config_create_initial_state() fails after the display units are
initialized, those 8 CRTCs, planes, encoders, and connectors remain on
dev->mode_config while vmw_kms_init() proceeds to initialize the next
display backend on the same drm_device.
When the fallback backend registers another set of CRTCs,
dev->mode_config.num_crtc grows past VMWGFX_NUM_DISPLAY_UNITS (8). If
dev_priv->vkms_enabled is set, vmw_vkms_init() only allocated dev->vblank
for VMWGFX_NUM_DISPLAY_UNITS CRTCs via drm_vblank_init(), so the subsequent
drm_mode_config_create_initial_state() -> drm_mode_config_crtc_create_state()
-> drm_crtc_vblank_reset() call will index dev->vblank out of bounds. Even
when vkms is disabled, if the fallback succeeds, dev->mode_config is left
with duplicate mixed-backend KMS objects and more than
VMWGFX_NUM_DISPLAY_UNITS CRTCs (which can also overflow fixed-size stack
arrays such as units[VMWGFX_NUM_DISPLAY_UNITS] in vmw_kms_helper_dirty()).
Could drm_mode_config_create_initial_state(dev) be called once in
vmw_kms_init() after the display unit fallback chain succeeds instead of
inside each backend initializer?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-drm-no-more-config-reset-v1-0-1f58d1e33380@kernel.org?part=81
^ permalink raw reply [flat|nested] 122+ messages in thread
end of thread, other threads:[~2026-11-05 22:27 UTC | newest]
Thread overview: 122+ 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 ` Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 01/83] drm/adp: Switch " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 02/83] drm/amdgpu: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 03/83] drm/appletbdrm: " Maxime Ripard
2026-11-05 17:41 ` Aditya Garg
2026-11-05 15:29 ` [PATCH RESEND 04/83] drm/komeda: " Maxime Ripard
2026-11-05 15:46 ` Liviu Dudau
2026-11-05 15:29 ` [PATCH RESEND 05/83] drm/hdlcd: " Maxime Ripard
2026-11-05 15:46 ` Liviu Dudau
2026-11-05 16:30 ` sashiko-bot
2026-11-05 15:29 ` [PATCH RESEND 06/83] drm/malidp: " Maxime Ripard
2026-11-05 15:46 ` Liviu Dudau
2026-11-05 15:29 ` [PATCH RESEND 07/83] drm/armada: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 08/83] drm/aspeed: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 09/83] drm/ast: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 10/83] drm/atmel-hlcdc: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 11/83] drm/exynos: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 12/83] drm/fsl-dcu: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 13/83] drm/gud: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 14/83] drm/hisilicon/hibmc: " Maxime Ripard
2026-11-05 17:25 ` sashiko-bot
2026-11-05 15:29 ` [PATCH RESEND 15/83] drm/hisilicon/kirin: " Maxime Ripard
2026-11-05 19:35 ` John Stultz
2026-11-05 15:29 ` [PATCH RESEND 16/83] drm/hyperv: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 17/83] drm/imx/dc: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 18/83] drm/imx/dcss: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 19/83] drm/imx/ipuv3: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 20/83] drm/ingenic: " Maxime Ripard
2026-11-05 15:56 ` Paul Cercueil
2026-11-05 18:12 ` sashiko-bot
2026-11-05 15:29 ` [PATCH RESEND 21/83] drm/kmb: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 22/83] drm/logicvc: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 23/83] drm/loongson: " Maxime Ripard
2026-11-05 18:28 ` sashiko-bot
2026-11-05 15:29 ` [PATCH RESEND 24/83] drm/mcde: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 25/83] drm/mediatek: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 26/83] drm/meson: " Maxime Ripard
2026-11-05 15:29 ` Maxime Ripard
2026-11-05 15:52 ` neil.armstrong
2026-11-05 15:52 ` neil.armstrong
2026-11-05 15:29 ` [PATCH RESEND 27/83] drm/mgag200: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 28/83] drm/msm: " 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
2026-11-05 15:29 ` [PATCH RESEND 31/83] drm/nouveau: " Maxime Ripard
2026-11-05 15:29 ` Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 32/83] drm/omap: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 33/83] drm/pl111: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 34/83] drm/qxl: " Maxime Ripard
2026-11-05 19:32 ` sashiko-bot
2026-11-05 15:29 ` [PATCH RESEND 35/83] drm/rcar-du: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 36/83] drm/rz-du: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 37/83] drm/shmobile: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 38/83] drm/rockchip: " Maxime Ripard
2026-11-05 15:29 ` Maxime Ripard
2026-11-05 19:05 ` Heiko Stübner
2026-11-05 19:05 ` Heiko Stübner
2026-11-05 15:29 ` [PATCH RESEND 39/83] drm/st7571: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 40/83] drm/st7586: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 41/83] drm/st7735r: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 42/83] drm/st7920: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 43/83] drm/ssd130x: " Maxime Ripard
2026-11-05 15:53 ` Javier Martinez Canillas
2026-11-05 15:29 ` [PATCH RESEND 44/83] drm/sprd: " Maxime Ripard
2026-11-05 15:29 ` [PATCH RESEND 45/83] drm/sti: " Maxime Ripard
2026-11-05 20:07 ` sashiko-bot
2026-11-05 15:29 ` [PATCH RESEND 46/83] drm/stm: " Maxime Ripard
2026-11-05 20:15 ` sashiko-bot
2026-11-05 15:29 ` [PATCH RESEND 47/83] drm/sun4i: " Maxime Ripard
2026-11-05 15:37 ` Chen-Yu Tsai
2026-11-05 20:24 ` sashiko-bot
2026-11-05 15:29 ` [PATCH RESEND 48/83] drm/corebootdrm: " Maxime Ripard
2026-11-05 15:54 ` Javier Martinez Canillas
2026-11-05 15:29 ` [PATCH RESEND 49/83] drm/efidrm: " Maxime Ripard
2026-11-05 15:55 ` Javier Martinez Canillas
2026-11-05 15:29 ` [PATCH RESEND 50/83] drm/ofdrm: " Maxime Ripard
2026-11-05 15:56 ` Javier Martinez Canillas
2026-11-05 15:30 ` [PATCH RESEND 51/83] drm/simpledrm: " Maxime Ripard
2026-11-05 15:56 ` Javier Martinez Canillas
2026-11-05 15:30 ` [PATCH RESEND 52/83] drm/vesadrm: " Maxime Ripard
2026-11-05 15:57 ` Javier Martinez Canillas
2026-11-05 15:30 ` [PATCH RESEND 53/83] drm/tegra: " Maxime Ripard
2026-11-05 15:51 ` Thierry Reding
2026-11-05 15:30 ` [PATCH RESEND 54/83] drm/tests: drm_atomic_state_test: " Maxime Ripard
2026-11-05 20:46 ` sashiko-bot
2026-11-05 15:30 ` [PATCH RESEND 55/83] drm/tests: drm_atomic_test: " Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 56/83] drm/tests: drm_bridge_test: " Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 57/83] drm/tests: drm_hdmi_state_helper_test: " Maxime Ripard
2026-11-05 21:01 ` sashiko-bot
2026-11-05 15:30 ` [PATCH RESEND 58/83] drm/tidss: " Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 59/83] drm/tilcdc: " Maxime Ripard
2026-11-05 21:19 ` sashiko-bot
2026-11-05 15:30 ` [PATCH RESEND 60/83] drm/arcpgu: " Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 61/83] drm/bochs: " Maxime Ripard
2026-11-05 21:25 ` sashiko-bot
2026-11-05 15:30 ` [PATCH RESEND 62/83] drm/cirrus-qemu: " Maxime Ripard
2026-11-05 21:26 ` sashiko-bot
2026-11-05 15:30 ` [PATCH RESEND 63/83] drm/gm12u320: " Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 64/83] drm/hx8357d: " Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 65/83] drm/ili9163: " Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 66/83] drm/ili9225: " Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 67/83] drm/ili9341: " Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 68/83] drm/ili9486: " Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 69/83] drm/mi0283qt: " Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 70/83] drm/panel-mipi-dbi: " Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 71/83] drm/pixpaper: " Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 72/83] drm/repaper: " Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 73/83] drm/sharp-memory: " Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 74/83] drm/tve200: " Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 75/83] drm/udl: " Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 76/83] drm/vboxvideo: " Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 77/83] drm/vc4: " Maxime Ripard
2026-11-05 16:06 ` Dave Stevenson
2026-11-05 15:30 ` [PATCH RESEND 78/83] drm/verisilicon: " Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 79/83] drm/virtio: " Maxime Ripard
2026-11-05 22:14 ` sashiko-bot
2026-11-05 15:30 ` [PATCH RESEND 80/83] drm/vkms: " Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 81/83] drm/vmwgfx: " Maxime Ripard
2026-11-05 22:27 ` sashiko-bot
2026-11-05 15:30 ` [PATCH RESEND 82/83] drm/xen: " Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 83/83] drm/xlnx: " 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.