[PATCH v2 00/22] Deprecate struct drm_device.irq_enabled
Daniel Vetter
daniel at ffwll.ch
Tue Jun 22 08:24:21 PDT 2021
On Tue, Jun 22, 2021 at 04:09:40PM +0200, Thomas Zimmermann wrote:
> Remove references to struct drm_device.irq_enabled from modern
> DRM drivers and core.
>
> KMS drivers enable IRQs for their devices internally. They don't
> have to keep track of the IRQ state via irq_enabled. For vblanking,
> it's cleaner to test for vblanking support directly than to test
> for enabled IRQs.
>
> This used to be a single patch, [1] but it's now a full series.
>
> The first 3 patches replace instances of irq_enabled that are not
> required.
>
> Patch 4 fixes vblank ioctls to actually test for vblank support
> instead of IRQs.
>
> THe rest of the patchset removes irq_enabled from all non-legacy
> drivers. The only exception is omapdrm, which has an internal
> dpendency on the field's value. For this drivers, the state gets
> duplicated internally.
>
> With the patchset applied, drivers can later switch over to plain
> Linux IRQ interfaces and DRM's IRQ midlayer can be declared legacy.
>
> v2:
> * keep the original test for legacy drivers in
> drm_wait_vblank_ioctl() (Daniel)
>
> [1] https://lore.kernel.org/dri-devel/20210608090301.4752-1-tzimmermann@suse.de/
On the series:
Acked-by: Daniel Vetter <daniel.vetter at ffwll.ch>
But I've only done a very light reading of this, so please wait for driver
folks to have some time to check their own before merging.
I think a devm_ version of drm_irq_install might be helpful in further
untangling here, but that's definitely for another series.
-Daniel
>
> Thomas Zimmermann (22):
> drm/amdgpu: Track IRQ state in local device state
> drm/hibmc: Call drm_irq_uninstall() unconditionally
> drm/radeon: Track IRQ state in local device state
> drm: Don't test for IRQ support in VBLANK ioctls
> drm/komeda: Don't set struct drm_device.irq_enabled
> drm/malidp: Don't set struct drm_device.irq_enabled
> drm/exynos: Don't set struct drm_device.irq_enabled
> drm/kirin: Don't set struct drm_device.irq_enabled
> drm/imx: Don't set struct drm_device.irq_enabled
> drm/mediatek: Don't set struct drm_device.irq_enabled
> drm/nouveau: Don't set struct drm_device.irq_enabled
> drm/omapdrm: Track IRQ state in local device state
> drm/rockchip: Don't set struct drm_device.irq_enabled
> drm/sti: Don't set struct drm_device.irq_enabled
> drm/stm: Don't set struct drm_device.irq_enabled
> drm/sun4i: Don't set struct drm_device.irq_enabled
> drm/tegra: Don't set struct drm_device.irq_enabled
> drm/tidss: Don't use struct drm_device.irq_enabled
> drm/vc4: Don't set struct drm_device.irq_enabled
> drm/vmwgfx: Don't set struct drm_device.irq_enabled
> drm/xlnx: Don't set struct drm_device.irq_enabled
> drm/zte: Don't set struct drm_device.irq_enabled
>
> drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 6 +++---
> drivers/gpu/drm/arm/display/komeda/komeda_kms.c | 4 ----
> drivers/gpu/drm/arm/malidp_drv.c | 4 ----
> drivers/gpu/drm/drm_irq.c | 10 +++-------
> drivers/gpu/drm/drm_vblank.c | 13 +++++++++----
> drivers/gpu/drm/exynos/exynos_drm_drv.c | 10 ----------
> drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 3 +--
> drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 2 --
> drivers/gpu/drm/imx/dcss/dcss-kms.c | 3 ---
> drivers/gpu/drm/imx/imx-drm-core.c | 11 -----------
> drivers/gpu/drm/mediatek/mtk_drm_drv.c | 6 ------
> drivers/gpu/drm/nouveau/nouveau_drm.c | 3 ---
> drivers/gpu/drm/omapdrm/omap_drv.h | 2 ++
> drivers/gpu/drm/omapdrm/omap_irq.c | 6 +++---
> drivers/gpu/drm/radeon/radeon_fence.c | 2 +-
> drivers/gpu/drm/radeon/radeon_irq_kms.c | 16 ++++++++--------
> drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 6 ------
> drivers/gpu/drm/sti/sti_compositor.c | 2 --
> drivers/gpu/drm/stm/ltdc.c | 3 ---
> drivers/gpu/drm/sun4i/sun4i_drv.c | 2 --
> drivers/gpu/drm/tegra/drm.c | 7 -------
> drivers/gpu/drm/tidss/tidss_irq.c | 3 ---
> drivers/gpu/drm/vc4/vc4_kms.c | 1 -
> drivers/gpu/drm/vmwgfx/vmwgfx_irq.c | 8 --------
> drivers/gpu/drm/xlnx/zynqmp_dpsub.c | 2 --
> drivers/gpu/drm/zte/zx_drm_drv.c | 6 ------
> 26 files changed, 30 insertions(+), 111 deletions(-)
>
>
> base-commit: 8c1323b422f8473421682ba783b5949ddd89a3f4
> prerequisite-patch-id: c2b2f08f0eccc9f5df0c0da49fa1d36267deb11d
> prerequisite-patch-id: c67e5d886a47b7d0266d81100837557fda34cb24
> --
> 2.32.0
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the Linux-rockchip
mailing list