All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sam Ravnborg <sam@ravnborg.org>
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: airlied@linux.ie, liviu.dudau@arm.com, stefan@agner.ch,
	amd-gfx@lists.freedesktop.org, anitha.chrisanthus@intel.com,
	patrik.r.jakobsson@gmail.com, linux-arm-msm@vger.kernel.org,
	freedreno@lists.freedesktop.org, daniel@ffwll.ch,
	edmund.j.dea@intel.com, s.hauer@pengutronix.de,
	alison.wang@nxp.com, maarten.lankhorst@linux.intel.com,
	mripard@kernel.org, dri-devel@lists.freedesktop.org,
	sean@poorly.run, linux-arm-kernel@lists.infradead.org,
	tomba@kernel.org, bbrezillon@kernel.org, jyri.sarha@iki.fi,
	christian.koenig@amd.com, robdclark@gmail.com,
	kernel@pengutronix.de, alexander.deucher@amd.com,
	shawnguo@kernel.org, brian.starkey@arm.com
Subject: Re: [PATCH 00/14] drm: Make DRM's IRQ helpers legacy
Date: Sat, 31 Jul 2021 20:50:02 +0200	[thread overview]
Message-ID: <YQWbWjV5TYzp+5C4@ravnborg.org> (raw)
In-Reply-To: <20210727182721.17981-1-tzimmermann@suse.de>

Hi Thomas,

On Tue, Jul 27, 2021 at 08:27:07PM +0200, Thomas Zimmermann wrote:
> 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

With the irq_enabled confusion out of the way I want to re-address two
issues here that I know you have answered but I am just not convinced.

1) IRQ_NOTCONNECTED

We do not have this check in drm_irq today and we should avoid spreading
it all over. We are either carrying it forever or we wil lsee patches
floating in to drop the check again.
The current use in the kernel is minimal:
https://elixir.bootlin.com/linux/latest/A/ident/IRQ_NOTCONNECTED

So as a minimum drop it from atmel_hlcdc and preferably from the rest as
it is really not used. (Speaking as atmel_hlcdc maintainer)


2) devm_request_irq()

We are moving towards managed allocation so we do not fail to free
resources. And an irq has a lifetime equal the device itself - so an
obvious cnadidate for devm_request_irq.
If we do not introduce it now we will see a revisit of this later.
I can be convinced to wait with this as we will have to do much more in
each driver, but I cannot see any good arguments to avoid the more
modern way to use devm_request_irq.

	Sam

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Sam Ravnborg <sam@ravnborg.org>
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: daniel@ffwll.ch, airlied@linux.ie, alexander.deucher@amd.com,
	christian.koenig@amd.com, liviu.dudau@arm.com,
	brian.starkey@arm.com, bbrezillon@kernel.org,
	nicolas.ferre@microchip.com, maarten.lankhorst@linux.intel.com,
	mripard@kernel.org, stefan@agner.ch, alison.wang@nxp.com,
	patrik.r.jakobsson@gmail.com, anitha.chrisanthus@intel.com,
	robdclark@gmail.com, edmund.j.dea@intel.com, sean@poorly.run,
	shawnguo@kernel.org, s.hauer@pengutronix.de,
	kernel@pengutronix.de, jyri.sarha@iki.fi, tomba@kernel.org,
	linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org,
	amd-gfx@lists.freedesktop.org, freedreno@lists.freedesktop.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 00/14] drm: Make DRM's IRQ helpers legacy
Date: Sat, 31 Jul 2021 20:50:02 +0200	[thread overview]
Message-ID: <YQWbWjV5TYzp+5C4@ravnborg.org> (raw)
In-Reply-To: <20210727182721.17981-1-tzimmermann@suse.de>

Hi Thomas,

On Tue, Jul 27, 2021 at 08:27:07PM +0200, Thomas Zimmermann wrote:
> 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

With the irq_enabled confusion out of the way I want to re-address two
issues here that I know you have answered but I am just not convinced.

1) IRQ_NOTCONNECTED

We do not have this check in drm_irq today and we should avoid spreading
it all over. We are either carrying it forever or we wil lsee patches
floating in to drop the check again.
The current use in the kernel is minimal:
https://elixir.bootlin.com/linux/latest/A/ident/IRQ_NOTCONNECTED

So as a minimum drop it from atmel_hlcdc and preferably from the rest as
it is really not used. (Speaking as atmel_hlcdc maintainer)


2) devm_request_irq()

We are moving towards managed allocation so we do not fail to free
resources. And an irq has a lifetime equal the device itself - so an
obvious cnadidate for devm_request_irq.
If we do not introduce it now we will see a revisit of this later.
I can be convinced to wait with this as we will have to do much more in
each driver, but I cannot see any good arguments to avoid the more
modern way to use devm_request_irq.

	Sam

  parent reply	other threads:[~2021-07-31 18:52 UTC|newest]

Thread overview: 172+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YQWbWjV5TYzp+5C4@ravnborg.org \
    --to=sam@ravnborg.org \
    --cc=airlied@linux.ie \
    --cc=alexander.deucher@amd.com \
    --cc=alison.wang@nxp.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=anitha.chrisanthus@intel.com \
    --cc=bbrezillon@kernel.org \
    --cc=brian.starkey@arm.com \
    --cc=christian.koenig@amd.com \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=edmund.j.dea@intel.com \
    --cc=freedreno@lists.freedesktop.org \
    --cc=jyri.sarha@iki.fi \
    --cc=kernel@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=liviu.dudau@arm.com \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mripard@kernel.org \
    --cc=patrik.r.jakobsson@gmail.com \
    --cc=robdclark@gmail.com \
    --cc=s.hauer@pengutronix.de \
    --cc=sean@poorly.run \
    --cc=shawnguo@kernel.org \
    --cc=stefan@agner.ch \
    --cc=tomba@kernel.org \
    --cc=tzimmermann@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.