Commit 613ba716 authored by Thomas Zimmermann's avatar Thomas Zimmermann Committed by Paul Cercueil

drm/ingenic: Convert to Linux IRQ interfaces

Drop the DRM IRQ midlayer in favor of Linux IRQ interfaces. DRM's
IRQ helpers are mostly useful for UMS drivers. Modern KMS drivers
don't benefit from using it.

This patch also fixes a bug where the driver didn't release the
IRQ.

v2:
	* automatically release IRQ via devm_request_irq() (Paul)
	* mention the bugfix (Sam)
Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: default avatarSam Ravnborg <sam@ravnborg.org>
Signed-off-by: default avatarPaul Cercueil <paul@crapouillou.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20210715100258.6638-1-tzimmermann@suse.de
parent 0189cb57
...@@ -33,7 +33,6 @@ ...@@ -33,7 +33,6 @@
#include <drm/drm_fourcc.h> #include <drm/drm_fourcc.h>
#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_atomic_helper.h>
#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_gem_framebuffer_helper.h>
#include <drm/drm_irq.h>
#include <drm/drm_managed.h> #include <drm/drm_managed.h>
#include <drm/drm_of.h> #include <drm/drm_of.h>
#include <drm/drm_panel.h> #include <drm/drm_panel.h>
...@@ -799,8 +798,6 @@ static const struct drm_driver ingenic_drm_driver_data = { ...@@ -799,8 +798,6 @@ static const struct drm_driver ingenic_drm_driver_data = {
.fops = &ingenic_drm_fops, .fops = &ingenic_drm_fops,
.gem_create_object = ingenic_drm_gem_create_object, .gem_create_object = ingenic_drm_gem_create_object,
DRM_GEM_CMA_DRIVER_OPS, DRM_GEM_CMA_DRIVER_OPS,
.irq_handler = ingenic_drm_irq_handler,
}; };
static const struct drm_plane_funcs ingenic_drm_primary_plane_funcs = { static const struct drm_plane_funcs ingenic_drm_primary_plane_funcs = {
...@@ -1098,7 +1095,7 @@ static int ingenic_drm_bind(struct device *dev, bool has_components) ...@@ -1098,7 +1095,7 @@ static int ingenic_drm_bind(struct device *dev, bool has_components)
encoder->possible_clones = clone_mask; encoder->possible_clones = clone_mask;
} }
ret = drm_irq_install(drm, irq); ret = devm_request_irq(dev, irq, ingenic_drm_irq_handler, 0, drm->driver->name, drm);
if (ret) { if (ret) {
dev_err(dev, "Unable to install IRQ handler\n"); dev_err(dev, "Unable to install IRQ handler\n");
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment