* [PATCH RESEND 00/83] drm: Switch drivers to drm_mode_config_create_initial_state
@ 2026-11-05 15:29 Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 53/83] drm/tegra: Switch " Maxime Ripard
2026-11-12 13:32 ` (subset) [PATCH RESEND 00/83] drm: Switch drivers " Maxime Ripard
0 siblings, 2 replies; 5+ 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] 5+ messages in thread
* [PATCH RESEND 53/83] drm/tegra: Switch to drm_mode_config_create_initial_state
2026-11-05 15:29 [PATCH RESEND 00/83] drm: Switch drivers to drm_mode_config_create_initial_state Maxime Ripard
@ 2026-11-05 15:30 ` Maxime Ripard
2026-11-05 15:51 ` Thierry Reding
2026-11-12 13:32 ` (subset) [PATCH RESEND 00/83] drm: Switch drivers " Maxime Ripard
1 sibling, 1 reply; 5+ 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] 5+ 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: Switch " Maxime Ripard
@ 2026-11-05 15:51 ` Thierry Reding
2026-11-10 16:10 ` Maxime Ripard
0 siblings, 1 reply; 5+ 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] 5+ messages in thread
* Re: [PATCH RESEND 53/83] drm/tegra: Switch to drm_mode_config_create_initial_state
2026-11-05 15:51 ` Thierry Reding
@ 2026-11-10 16:10 ` Maxime Ripard
0 siblings, 0 replies; 5+ messages in thread
From: Maxime Ripard @ 2026-11-10 16:10 UTC (permalink / raw)
To: Thierry Reding
Cc: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann,
dri-devel, Jonathan Hunter, Mikko Perttunen, linux-tegra
[-- Attachment #1: Type: text/plain, Size: 1800 bytes --]
Hi Thierry,
On Thu, Nov 05, 2026 at 04:51:46PM +0100, Thierry Reding wrote:
> 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?
AFAIK, all tegra connectors have now been converted to
atomic_create_state instead of reset (commits c5c0e4821938 and
f808d9f8e5a3 in drm-misc-next) so it shouldn't have any reset specific
behaviour at all and the transition to
drm_mode_config_create_initial_state().
Am I missing something?
Maxime
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 273 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: (subset) [PATCH RESEND 00/83] drm: Switch drivers to drm_mode_config_create_initial_state
2026-11-05 15:29 [PATCH RESEND 00/83] drm: Switch drivers to drm_mode_config_create_initial_state Maxime Ripard
2026-11-05 15:30 ` [PATCH RESEND 53/83] drm/tegra: Switch " Maxime Ripard
@ 2026-11-12 13:32 ` Maxime Ripard
1 sibling, 0 replies; 5+ messages in thread
From: Maxime Ripard @ 2026-11-12 13:32 UTC (permalink / raw)
To: David Airlie, Maarten Lankhorst, Simona Vetter, Thomas Zimmermann,
Maxime Ripard
Cc: 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
On Thu, 05 Nov 2026 16:29:09 +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. 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.
>
> [...]
Applied to misc/kernel.git (drm-misc-next)
[03/83] drm/appletbdrm: Switch to drm_mode_config_create_initial_state
commit: 24f5141d0266b391fda87dd3458aad31c26e28df
[04/83] drm/komeda: Switch to drm_mode_config_create_initial_state
commit: 95b07f6f1f820601f9bc4f9dd8cb01e008c4441d
[06/83] drm/malidp: Switch to drm_mode_config_create_initial_state
commit: b0507da85fdd7060decd29d35f5819259718f741
[08/83] drm/aspeed: Switch to drm_mode_config_create_initial_state
commit: fe87bfb1dfa04dd73bb89e60820ced02967faee8
[10/83] drm/atmel-hlcdc: Switch to drm_mode_config_create_initial_state
commit: b36f26eb85d8032b458fab7c6912650c0e5b5561
[13/83] drm/gud: Switch to drm_mode_config_create_initial_state
commit: a53dc66784822a101541c54e1e7e471bbad3e8ee
[15/83] drm/hisilicon/kirin: Switch to drm_mode_config_create_initial_state
commit: 1e8db0d2a2383ce3fb96ea1db26180350d972786
[17/83] drm/imx/dc: Switch to drm_mode_config_create_initial_state
commit: 39283d6d8fbaca8d7bb7e98f7406dad5286bfc6e
[18/83] drm/imx/dcss: Switch to drm_mode_config_create_initial_state
commit: dc54c1bc909873caf0f910677f3de899cdf3b62d
[24/83] drm/mcde: Switch to drm_mode_config_create_initial_state
commit: 046b692dc7d3910b6a85d71e5e941c712bad30ee
[26/83] drm/meson: Switch to drm_mode_config_create_initial_state
commit: a26760da1f8bebdcc7fe6fdcb5df5c6ca007e4cc
[29/83] drm/lcdif: Switch to drm_mode_config_create_initial_state
commit: 0f3e257909538e9cce0213c2d1b9d3a7edf8f348
[30/83] drm/mxsfb: Switch to drm_mode_config_create_initial_state
commit: 99da25e15ccbfb1d0717de28d3b6f45f72958127
[33/83] drm/pl111: Switch to drm_mode_config_create_initial_state
commit: 4b9008133a7b14dbb1eeab84266926062d126ba7
[38/83] drm/rockchip: Switch to drm_mode_config_create_initial_state
commit: c07d0dfba08808c90ab8ccc23a1f0ce9aafae536
[43/83] drm/ssd130x: Switch to drm_mode_config_create_initial_state
commit: d7938a168f56608626d62a7015b448da1cee4dba
[48/83] drm/corebootdrm: Switch to drm_mode_config_create_initial_state
commit: 207a0f90ce3953131806ead64bb512364de260c4
[49/83] drm/efidrm: Switch to drm_mode_config_create_initial_state
commit: 8fa2e7e1b3642113677a6a77f81aa186f3b16293
[50/83] drm/ofdrm: Switch to drm_mode_config_create_initial_state
commit: 1fd3ed4c330b8f56bbcd7d2684e1dae5961ee8ab
[51/83] drm/simpledrm: Switch to drm_mode_config_create_initial_state
commit: cde728838797cdce3bc488acb1338c1dc20c24d2
[52/83] drm/vesadrm: Switch to drm_mode_config_create_initial_state
commit: 705557cddfcbea6c6ee2e50057394c6c6fc2ab8b
[74/83] drm/tve200: Switch to drm_mode_config_create_initial_state
commit: 4b40cfa3178f00188314a1da55dd899e635d2d73
[77/83] drm/vc4: Switch to drm_mode_config_create_initial_state
commit: 6d8d9311bc9daac0e5acc3e5d34ca067abdd1fe4
[80/83] drm/vkms: Switch to drm_mode_config_create_initial_state
commit: 63a80293361bc276fb07cd68511b5f887ff5fa41
Thanks!
Maxime
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-11-12 13:32 UTC | newest]
Thread overview: 5+ 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:30 ` [PATCH RESEND 53/83] drm/tegra: Switch " Maxime Ripard
2026-11-05 15:51 ` Thierry Reding
2026-11-10 16:10 ` Maxime Ripard
2026-11-12 13:32 ` (subset) [PATCH RESEND 00/83] drm: Switch drivers " Maxime Ripard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox