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@xxxxxxx/ On the series: Acked-by: Daniel Vetter <daniel.vetter@xxxxxxxx> 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