[PATCH v2 00/22] Deprecate struct drm_device.irq_enabled

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Jun 22 09:17:57 PDT 2021


On Tue, Jun 22, 2021 at 07:11:33PM +0300, Laurent Pinchart wrote:
> Hi Thomas,
> 
> Thank you for the patches.
> 
> 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/
> > 
> > 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
> 
> The list seems to be missing armada, rcar-du and vkms. It would also be
> nice to address i915 if possible.

In addition to this, for all the existing patches,

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> >  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

-- 
Regards,

Laurent Pinchart



More information about the Linux-mediatek mailing list