All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/14] drm: Make DRM's IRQ helpers legacy
@ 2021-07-27 18:27 ` Thomas Zimmermann
  0 siblings, 0 replies; 172+ messages in thread
From: Thomas Zimmermann @ 2021-07-27 18:27 UTC (permalink / raw)
  To: daniel, airlied, alexander.deucher, christian.koenig,
	liviu.dudau, brian.starkey, sam, bbrezillon, nicolas.ferre,
	maarten.lankhorst, mripard, stefan, alison.wang,
	patrik.r.jakobsson, anitha.chrisanthus, robdclark, edmund.j.dea,
	sean, shawnguo, s.hauer, kernel, jyri.sarha, tomba
  Cc: amd-gfx, dri-devel, linux-arm-kernel, linux-arm-msm, freedreno,
	Thomas Zimmermann

DRM's IRQ helpers are only helpful for old, non-KMS drivers. Move
the code behind CONFIG_DRM_LEGACY. Convert KMS drivers to Linux
IRQ interfaces.

DRM provides IRQ helpers for setting up, receiving and removing IRQ
handlers. It's an abstraction over plain Linux functions. The code
is mid-layerish with several callbacks to hook into the rsp drivers.
Old UMS driver have their interrupts enabled via ioctl, so these
abstractions makes some sense. Modern KMS manage all their interrupts
internally. Using the DRM helpers adds indirection without benefits.

Most KMs drivers already use Linux IRQ functions instead of DRM's
abstraction layer. Patches 1 to 12 convert the remaining ones.
The patches also resolve a bug for devices without assigned interrupt
number. DRM helpers don't test for IRQ_NOTCONNECTED, so drivers do
not detect if the device has no interrupt assigned.

Patch 13 removes an unused function.

Patch 14 moves the DRM IRQ helpers behind CONFIG_DRM_LEGACY. Only
the old non-KMS drivers still use the functionality.

Thomas Zimmermann (14):
  drm/amdgpu: Convert to Linux IRQ interfaces
  drm/arm/hdlcd: Convert to Linux IRQ interfaces
  drm/atmel-hlcdc: Convert to Linux IRQ interfaces
  drm/fsl-dcu: Convert to Linux IRQ interfaces
  drm/gma500: Convert to Linux IRQ interfaces
  drm/kmb: Convert to Linux IRQ interfaces
  drm/msm: Convert to Linux IRQ interfaces
  drm/mxsfb: Convert to Linux IRQ interfaces
  drm/radeon: Convert to Linux IRQ interfaces
  drm/tidss: Convert to Linux IRQ interfaces
  drm/tilcdc: Convert to Linux IRQ interfaces
  drm/vc4: Convert to Linux IRQ interfaces
  drm: Remove unused devm_drm_irq_install()
  drm: IRQ midlayer is now legacy

 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c      |   1 -
 drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c      |  21 ++-
 drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h      |   2 +-
 drivers/gpu/drm/arm/hdlcd_drv.c              | 174 ++++++++++---------
 drivers/gpu/drm/arm/hdlcd_drv.h              |   1 +
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c |  85 +++++----
 drivers/gpu/drm/drm_irq.c                    |  95 +---------
 drivers/gpu/drm/drm_legacy_misc.c            |   3 +-
 drivers/gpu/drm/drm_vblank.c                 |   8 +-
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c    |  78 +++++----
 drivers/gpu/drm/gma500/power.c               |   1 +
 drivers/gpu/drm/gma500/psb_drv.c             |   8 +-
 drivers/gpu/drm/gma500/psb_drv.h             |   5 -
 drivers/gpu/drm/gma500/psb_irq.c             |  26 ++-
 drivers/gpu/drm/gma500/psb_irq.h             |   4 +-
 drivers/gpu/drm/i810/i810_dma.c              |   3 +-
 drivers/gpu/drm/kmb/kmb_drv.c                |  26 ++-
 drivers/gpu/drm/mga/mga_dma.c                |   2 +-
 drivers/gpu/drm/mga/mga_drv.h                |   1 -
 drivers/gpu/drm/msm/msm_drv.c                | 113 +++++++-----
 drivers/gpu/drm/msm/msm_kms.h                |   2 +-
 drivers/gpu/drm/mxsfb/mxsfb_drv.c            |  81 +++++----
 drivers/gpu/drm/mxsfb/mxsfb_drv.h            |   2 +
 drivers/gpu/drm/r128/r128_cce.c              |   3 +-
 drivers/gpu/drm/radeon/radeon_drv.c          |   4 -
 drivers/gpu/drm/radeon/radeon_irq_kms.c      |  44 ++++-
 drivers/gpu/drm/radeon/radeon_kms.h          |   4 -
 drivers/gpu/drm/tidss/tidss_drv.c            |  15 +-
 drivers/gpu/drm/tidss/tidss_drv.h            |   2 +
 drivers/gpu/drm/tidss/tidss_irq.c            |  27 ++-
 drivers/gpu/drm/tidss/tidss_irq.h            |   4 +-
 drivers/gpu/drm/tilcdc/tilcdc_drv.c          |  51 ++++--
 drivers/gpu/drm/tilcdc/tilcdc_drv.h          |   3 +
 drivers/gpu/drm/vc4/vc4_drv.c                |   4 -
 drivers/gpu/drm/vc4/vc4_drv.h                |   8 +-
 drivers/gpu/drm/vc4/vc4_irq.c                |  48 +++--
 drivers/gpu/drm/vc4/vc4_v3d.c                |  17 +-
 drivers/gpu/drm/via/via_mm.c                 |   3 +-
 include/drm/drm_device.h                     |  18 +-
 include/drm/drm_drv.h                        |  44 +----
 include/drm/drm_irq.h                        |  32 ----
 include/drm/drm_legacy.h                     |   3 +
 42 files changed, 572 insertions(+), 504 deletions(-)
 delete mode 100644 include/drm/drm_irq.h


base-commit: 2bda1ca4d4acb4892556fec3a7ea1f02afcd40bb
prerequisite-patch-id: c2b2f08f0eccc9f5df0c0da49fa1d36267deb11d
prerequisite-patch-id: c67e5d886a47b7d0266d81100837557fda34cb24
--
2.32.0


^ permalink raw reply	[flat|nested] 172+ messages in thread

end of thread, other threads:[~2021-08-02 15:29 UTC | newest]

Thread overview: 172+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-27 18:27 [PATCH 00/14] drm: Make DRM's IRQ helpers legacy Thomas Zimmermann
2021-07-27 18:27 ` Thomas Zimmermann
2021-07-27 18:27 ` Thomas Zimmermann
2021-07-27 18:27 ` Thomas Zimmermann
2021-07-27 18:27 ` [PATCH 01/14] drm/amdgpu: Convert to Linux IRQ interfaces Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-28 10:27   ` Christian König
2021-07-28 10:27     ` Christian König
2021-07-28 10:27     ` Christian König
2021-07-28 10:27     ` Christian König
2021-07-28 14:03     ` Alex Deucher
2021-07-28 14:03       ` Alex Deucher
2021-07-28 14:03       ` Alex Deucher
2021-07-28 14:03       ` Alex Deucher
2021-08-02  8:43       ` Thomas Zimmermann
2021-08-02  8:43         ` Thomas Zimmermann
2021-08-02  8:43         ` Thomas Zimmermann
2021-07-27 18:27 ` [PATCH 02/14] drm/arm/hdlcd: " Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-28 13:31   ` Sam Ravnborg
2021-07-28 13:31     ` Sam Ravnborg
2021-07-28 13:31     ` Sam Ravnborg
2021-07-28 18:15     ` Thomas Zimmermann
2021-07-28 18:15       ` Thomas Zimmermann
2021-07-28 18:15       ` Thomas Zimmermann
2021-07-28 18:15       ` Thomas Zimmermann
2021-07-27 18:27 ` [PATCH 03/14] drm/atmel-hlcdc: " Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-28 14:00   ` Sam Ravnborg
2021-07-28 14:00     ` Sam Ravnborg
2021-07-28 14:00     ` Sam Ravnborg
2021-07-28 15:11     ` Dan.Sneddon
2021-07-28 15:11       ` Dan.Sneddon
2021-07-28 15:11       ` Dan.Sneddon
2021-07-28 15:11       ` Dan.Sneddon
2021-07-28 15:44       ` Sam Ravnborg
2021-07-28 15:44         ` Sam Ravnborg
2021-07-28 15:44         ` Sam Ravnborg
2021-07-28 17:50         ` Dan.Sneddon
2021-07-28 17:50           ` Dan.Sneddon
2021-07-28 17:50           ` Dan.Sneddon
2021-07-28 17:50           ` Dan.Sneddon
2021-07-28 18:11           ` Sam Ravnborg
2021-07-28 18:11             ` Sam Ravnborg
2021-07-28 18:11             ` Sam Ravnborg
2021-07-28 18:17             ` Thomas Zimmermann
2021-07-28 18:17               ` Thomas Zimmermann
2021-07-28 18:17               ` Thomas Zimmermann
2021-07-28 18:17               ` Thomas Zimmermann
2021-07-28 18:46               ` Dan.Sneddon
2021-07-28 18:46                 ` Dan.Sneddon
2021-07-28 18:46                 ` Dan.Sneddon
2021-07-28 18:46                 ` Dan.Sneddon
2021-07-28 19:08                 ` Sam Ravnborg
2021-07-28 19:08                   ` Sam Ravnborg
2021-07-28 19:08                   ` Sam Ravnborg
2021-07-28 19:19                   ` Dan.Sneddon
2021-07-28 19:19                     ` Dan.Sneddon
2021-07-28 19:19                     ` Dan.Sneddon
2021-07-28 19:19                     ` Dan.Sneddon
2021-07-28 20:11                     ` Sam Ravnborg
2021-07-28 20:11                       ` Sam Ravnborg
2021-07-28 20:11                       ` Sam Ravnborg
2021-07-29 19:18                       ` Thomas Zimmermann
2021-07-29 19:18                         ` Thomas Zimmermann
2021-07-29 19:18                         ` Thomas Zimmermann
2021-07-29 19:18                         ` Thomas Zimmermann
2021-07-29 19:21                         ` Thomas Zimmermann
2021-07-29 19:21                           ` Thomas Zimmermann
2021-07-29 19:21                           ` Thomas Zimmermann
2021-07-29 19:21                           ` Thomas Zimmermann
2021-07-29 19:24                         ` Dan.Sneddon
2021-07-29 19:24                           ` Dan.Sneddon
2021-07-29 19:24                           ` Dan.Sneddon
2021-07-29 19:24                           ` Dan.Sneddon
2021-07-29 19:32                           ` Thomas Zimmermann
2021-07-29 19:32                             ` Thomas Zimmermann
2021-07-29 19:32                             ` Thomas Zimmermann
2021-07-29 19:32                             ` Thomas Zimmermann
2021-07-29 19:48                         ` Sam Ravnborg
2021-07-29 19:48                           ` Sam Ravnborg
2021-07-29 19:48                           ` Sam Ravnborg
2021-07-29 19:55                           ` Dan.Sneddon
2021-07-29 19:55                             ` Dan.Sneddon
2021-07-29 19:55                             ` Dan.Sneddon
2021-07-29 19:55                             ` Dan.Sneddon
2021-07-30  8:31                             ` Thomas Zimmermann
2021-07-30  8:31                               ` Thomas Zimmermann
2021-07-30  8:31                               ` Thomas Zimmermann
2021-07-30  8:31                               ` Thomas Zimmermann
2021-07-30 18:10                               ` Dan.Sneddon
2021-07-30 18:10                                 ` Dan.Sneddon
2021-07-30 18:10                                 ` Dan.Sneddon
2021-07-28 18:19             ` Dan.Sneddon
2021-07-28 18:19               ` Dan.Sneddon
2021-07-28 18:19               ` Dan.Sneddon
2021-07-28 18:19               ` Dan.Sneddon
2021-07-27 18:27 ` [PATCH 04/14] drm/fsl-dcu: " Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27 ` [PATCH 05/14] drm/gma500: " Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27 ` [PATCH 06/14] drm/kmb: " Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27 ` [PATCH 07/14] drm/msm: " Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27 ` [PATCH 08/14] drm/mxsfb: " Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27 ` [PATCH 09/14] drm/radeon: " Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-08-02 15:27   ` Alex Deucher
2021-08-02 15:27     ` Alex Deucher
2021-08-02 15:27     ` Alex Deucher
2021-07-27 18:27 ` [PATCH 10/14] drm/tidss: " Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-29  7:02   ` Tomi Valkeinen
2021-07-29  7:02     ` Tomi Valkeinen
2021-07-29  7:02     ` Tomi Valkeinen
2021-07-29  7:02     ` Tomi Valkeinen
2021-07-27 18:27 ` [PATCH 11/14] drm/tilcdc: " Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27 ` [PATCH 12/14] drm/vc4: " Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27 ` [PATCH 13/14] drm: Remove unused devm_drm_irq_install() Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27 ` [PATCH 14/14] drm: IRQ midlayer is now legacy Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-27 18:27   ` Thomas Zimmermann
2021-07-28 14:10   ` Sam Ravnborg
2021-07-28 14:10     ` Sam Ravnborg
2021-07-28 14:10     ` Sam Ravnborg
2021-07-27 18:51 ` [PATCH 00/14] drm: Make DRM's IRQ helpers legacy Sam Ravnborg
2021-07-27 18:51   ` Sam Ravnborg
2021-07-27 18:51   ` Sam Ravnborg
2021-07-28  5:19   ` Thomas Zimmermann
2021-07-28  5:19     ` Thomas Zimmermann
2021-07-28  5:19     ` Thomas Zimmermann
2021-07-28  5:19     ` Thomas Zimmermann
2021-07-31 18:50 ` Sam Ravnborg
2021-07-31 18:50   ` Sam Ravnborg
2021-08-01 19:56   ` Thomas Zimmermann
2021-08-01 19:56     ` Thomas Zimmermann
2021-08-01 20:24     ` Sam Ravnborg
2021-08-01 20:24       ` Sam Ravnborg
2021-08-02  8:42       ` Thomas Zimmermann
2021-08-02  8:42         ` Thomas Zimmermann

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.