Re: [PATCH 00/70] drm/crtc: Convert all drivers to atomic_create_state and remove reset
Thomas Zimmermann <[email protected]>
| Newsgroups | dev.linux.lists.asahi,dev.linux.lists.imx,dev.linux.lists.linux-sunxi,dev.linux.lists.virtualization,org.freedesktop.lists.amd-gfx,org.freedesktop.lists.nouveau,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-hyperv,org.kernel.vger.linux-mips,org.kernel.vger.linux-renesas-soc,org.kernel.vger.linux-samsung-soc,org.kernel.vger.linux-tegra |
|---|---|
| Message-ID | <[email protected]> |
Hi Maxime Am 21.08.26 um 16:38 schrieb Maxime Ripard: > This is a follow-up to the plane reset removal series, and part of a > larger effort to remove the reset hook from all KMS objects. > > The CRTC reset hook is overloaded: it is called both at probe time to > create the initial software state and during suspend/resume to reset > hardware and software state. These two roles have different > requirements, and the reset hook is not fallible, making error > handling difficult for the initial state allocation path. > > While reset has the semantics to reset both the software and hardware > state, the vast majority of implementations and all the helpers only > reset the software state, making them equivalent to > atomic_create_state in practice. The atomic_create_state hook makes > this explicit: it only allocates and initializes a pristine state > without any side effect, and returns the state pointer or an ERR_PTR > on failure. > > This series converts all CRTC drivers tree-wide from the reset hook to > atomic_create_state, then removes the reset hook from struct > drm_crtc_funcs entirely. Two drivers (tilcdc and loongson) had actual > hardware reset logic mixed into their reset hook; those are moved to > CRTC creation instead. The conversions were done using a combination of > Coccinelle semantic patches and manual adjustments. > > Signed-off-by: Maxime Ripard <[email protected]> I've gone through the series and it looks good to me; except for patch 50. Feel free to add Reviewed-by: Thomas Zimmermann <[email protected]> to the series with the exception of patch 50. Best regards Thomas > --- > Maxime Ripard (70): > drm/adp: Switch to drm_atomic_helper_crtc_create_state > drm/amdgpu: vkms: Switch to drm_atomic_helper_crtc_create_state > drm/arm: hdlcd: Switch to drm_atomic_helper_crtc_create_state > drm/armada: Switch to drm_atomic_helper_crtc_create_state > drm/exynos: Switch to drm_atomic_helper_crtc_create_state > drm/fsl-dcu: Switch to drm_atomic_helper_crtc_create_state > drm/gud: Switch to drm_atomic_helper_crtc_create_state > drm/hisilicon: hibmc: Switch to drm_atomic_helper_crtc_create_state > drm/hisilicon: kirin: Switch to drm_atomic_helper_crtc_create_state > drm/hyperv: Switch to drm_atomic_helper_crtc_create_state > drm/imx: dc: Switch to drm_atomic_helper_crtc_create_state > drm/imx: dcss: Switch to drm_atomic_helper_crtc_create_state > drm/ingenic: Switch to drm_atomic_helper_crtc_create_state > drm/kmb: Switch to drm_atomic_helper_crtc_create_state > drm/logicvc: Switch to drm_atomic_helper_crtc_create_state > drm/meson: Switch to drm_atomic_helper_crtc_create_state > drm/msm: mdp4: Switch to drm_atomic_helper_crtc_create_state > drm/mxs: mxsfb: Switch to drm_atomic_helper_crtc_create_state > drm/qxl: Switch to drm_atomic_helper_crtc_create_state > drm/renesas: shmobile: Switch to drm_atomic_helper_crtc_create_state > drm/simple-kms: Remove unused reset_crtc hook > drm/simple-kms: Switch to drm_atomic_helper_crtc_create_state > drm/sitronix: st7571: Switch to drm_atomic_helper_crtc_create_state > drm/sprd: Switch to drm_atomic_helper_crtc_create_state > drm/sti: Switch to drm_atomic_helper_crtc_create_state > drm/stm: Switch to drm_atomic_helper_crtc_create_state > drm/sun4i: Switch to drm_atomic_helper_crtc_create_state > drm/tests: Switch to drm_atomic_helper_crtc_create_state > drm/tilcdc: Move hardware reset to CRTC creation > drm/tilcdc: Switch to drm_atomic_helper_crtc_create_state > drm/tiny: appletbdrm: Switch to drm_atomic_helper_crtc_create_state > drm/tiny: bochs: Switch to drm_atomic_helper_crtc_create_state > drm/tiny: cirrus: Switch to drm_atomic_helper_crtc_create_state > drm/tiny: pixpaper: Switch to drm_atomic_helper_crtc_create_state > drm/tiny: sharp: Switch to drm_atomic_helper_crtc_create_state > drm/udl: Switch to drm_atomic_helper_crtc_create_state > drm/vbox: Switch to drm_atomic_helper_crtc_create_state > drm/verisilicon: Switch to drm_atomic_helper_crtc_create_state > drm/virtio: Switch to drm_atomic_helper_crtc_create_state > drm/xlnx: Switch to drm_atomic_helper_crtc_create_state > drm/mipi-dbi: Switch to drm_atomic_helper_crtc_create_state > drm/atomic-helper: Remove drm_atomic_helper_crtc_reset > sysfb: Convert to create_state > drm/amdgpu: dm: Convert to atomic_create_state > drm/komeda: Convert to atomic_create_state > drm/malidp: Convert to atomic_create_state > drm/ast: Convert to atomic_create_state > drm/atmel-hlcdc: Convert to atomic_create_state > drm/imx: ipuv3: Convert to atomic_create_state > drm/loongsoon: Move hardware reset to CRTC creation > drm/loongson: Convert to atomic_create_state > drm/mediatek: Convert to atomic_create_state > drm/mgag200: Convert to atomic_create_state > drm/msm: dpu1: Convert to atomic_create_state > drm/msm: mdp5: Convert to atomic_create_state > drm/mxsfb: lcdif: Convert to atomic_create_state > drm/nouveau: Convert to atomic_create_state > drm/omapdrm: Convert to atomic_create_state > drm/rcar-du: Convert to atomic_create_state > drm/rzg2l-du: Convert to atomic_create_state > drm/rockchip: vop: Convert to atomic_create_state > drm/rockchip: vop2: Convert to atomic_create_state > drm/sitronix: st7920: Convert to atomic_create_state > drm/solomon: ssd130x: Convert to atomic_create_state > drm/tegra: Convert to atomic_create_state > drm/vc4: Convert to atomic_create_state > drm/vkms: Convert to atomic_create_state > drm/vmwgfx: Convert to atomic_create_state > drm/atomic-helper: Remove __drm_atomic_helper_crtc_reset > drm/crtc: Remove reset > > drivers/gpu/drm/adp/adp_drv.c | 2 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 2 +- > .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c | 17 ++++---- > drivers/gpu/drm/arm/display/komeda/komeda_crtc.c | 18 ++++---- > drivers/gpu/drm/arm/hdlcd_crtc.c | 2 +- > drivers/gpu/drm/arm/malidp_crtc.c | 18 ++++---- > drivers/gpu/drm/armada/armada_crtc.c | 2 +- > drivers/gpu/drm/ast/ast_mode.c | 18 ++++---- > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 19 ++++----- > drivers/gpu/drm/drm_atomic_state_helper.c | 45 -------------------- > drivers/gpu/drm/drm_mode_config.c | 4 +- > drivers/gpu/drm/drm_simple_kms_helper.c | 13 +----- > drivers/gpu/drm/exynos/exynos_drm_crtc.c | 2 +- > drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c | 2 +- > drivers/gpu/drm/gud/gud_drv.c | 2 +- > drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c | 2 +- > drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 2 +- > drivers/gpu/drm/hyperv/hyperv_drm_modeset.c | 2 +- > drivers/gpu/drm/imx/dc/dc-crtc.c | 2 +- > drivers/gpu/drm/imx/dcss/dcss-crtc.c | 2 +- > drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c | 18 ++++---- > drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 2 +- > drivers/gpu/drm/kmb/kmb_crtc.c | 2 +- > drivers/gpu/drm/logicvc/logicvc_crtc.c | 2 +- > drivers/gpu/drm/loongson/lsdc_crtc.c | 26 ++++++------ > drivers/gpu/drm/mediatek/mtk_crtc.c | 18 ++++---- > drivers/gpu/drm/meson/meson_crtc.c | 2 +- > drivers/gpu/drm/mgag200/mgag200_drv.h | 4 +- > drivers/gpu/drm/mgag200/mgag200_mode.c | 15 ++++--- > drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 18 ++++---- > drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c | 2 +- > drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c | 20 ++++----- > drivers/gpu/drm/mxsfb/lcdif_kms.c | 17 ++++---- > drivers/gpu/drm/mxsfb/mxsfb_kms.c | 4 +- > drivers/gpu/drm/nouveau/dispnv50/head.c | 14 +++---- > drivers/gpu/drm/omapdrm/omap_crtc.c | 17 ++++---- > drivers/gpu/drm/qxl/qxl_display.c | 2 +- > drivers/gpu/drm/renesas/rcar-du/rcar_du_crtc.c | 17 ++++---- > drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c | 15 +++---- > drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c | 2 +- > drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 18 ++++---- > drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 18 ++++---- > drivers/gpu/drm/sitronix/st7571.c | 2 +- > drivers/gpu/drm/sitronix/st7920.c | 10 +++-- > drivers/gpu/drm/solomon/ssd130x.c | 10 +++-- > drivers/gpu/drm/sprd/sprd_dpu.c | 2 +- > drivers/gpu/drm/sti/sti_crtc.c | 2 +- > drivers/gpu/drm/stm/ltdc.c | 4 +- > drivers/gpu/drm/sun4i/sun4i_crtc.c | 2 +- > drivers/gpu/drm/sysfb/drm_sysfb_helper.h | 4 +- > drivers/gpu/drm/sysfb/drm_sysfb_modeset.c | 20 ++++----- > drivers/gpu/drm/tegra/dc.c | 18 ++++---- > drivers/gpu/drm/tests/drm_kunit_helpers.c | 2 +- > drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 49 +++++++++------------- > drivers/gpu/drm/tiny/appletbdrm.c | 2 +- > drivers/gpu/drm/tiny/bochs.c | 2 +- > drivers/gpu/drm/tiny/cirrus-qemu.c | 2 +- > drivers/gpu/drm/tiny/pixpaper.c | 2 +- > drivers/gpu/drm/tiny/sharp-memory.c | 2 +- > drivers/gpu/drm/udl/udl_modeset.c | 2 +- > drivers/gpu/drm/vboxvideo/vbox_mode.c | 2 +- > drivers/gpu/drm/vc4/tests/vc4_mock_crtc.c | 2 +- > drivers/gpu/drm/vc4/vc4_crtc.c | 14 +++---- > drivers/gpu/drm/vc4/vc4_drv.h | 2 +- > drivers/gpu/drm/vc4/vc4_txp.c | 2 +- > drivers/gpu/drm/verisilicon/vs_crtc.c | 2 +- > drivers/gpu/drm/virtio/virtgpu_display.c | 2 +- > drivers/gpu/drm/vkms/vkms_crtc.c | 18 ++++---- > drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 22 ++++------ > drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 2 +- > drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 2 +- > drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 2 +- > drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 2 +- > drivers/gpu/drm/xlnx/zynqmp_kms.c | 2 +- > include/drm/drm_atomic_state_helper.h | 3 -- > include/drm/drm_crtc.h | 12 ------ > include/drm/drm_mipi_dbi.h | 2 +- > include/drm/drm_simple_kms_helper.h | 1 - > 78 files changed, 275 insertions(+), 385 deletions(-) > --- > base-commit: 7ea58b9ddb52264a4ed36bccb975062ada32c62d > change-id: 20260709-drm-no-more-crtc-reset-14a4d5bc8d41 > > Best regards, -- -- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com GF: Jochen Jaser, Andrew McDonald, (HRB 36809, AG Nürnberg)