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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





Am 22.06.21 um 18:11 schrieb Laurent Pinchart:
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@xxxxxxx/

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.

Indeed. I grepped for \>irq_enabled. But some few drivers use .irq_enabled. I'll fix this in the patchset's next iteration. Thanks for double checking.

Best regards
Thomas


--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux