]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/ingenic: Convert to Linux IRQ interfaces
authorThomas Zimmermann <tzimmermann@suse.de>
Thu, 15 Jul 2021 10:02:58 +0000 (12:02 +0200)
committerPaul Cercueil <paul@crapouillou.net>
Mon, 19 Jul 2021 20:50:50 +0000 (21:50 +0100)
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: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20210715100258.6638-1-tzimmermann@suse.de
drivers/gpu/drm/ingenic/ingenic-drm-drv.c

index c296472164d9803fd587ba1afe158e2c85c294c1..857ed070b21bfc6ba5bd48e09d870d6bc55b0169 100644 (file)
@@ -33,7 +33,6 @@
 #include <drm/drm_fourcc.h>
 #include <drm/drm_gem_atomic_helper.h>
 #include <drm/drm_gem_framebuffer_helper.h>
-#include <drm/drm_irq.h>
 #include <drm/drm_managed.h>
 #include <drm/drm_of.h>
 #include <drm/drm_panel.h>
@@ -799,8 +798,6 @@ static const struct drm_driver ingenic_drm_driver_data = {
        .fops                   = &ingenic_drm_fops,
        .gem_create_object      = ingenic_drm_gem_create_object,
        DRM_GEM_CMA_DRIVER_OPS,
-
-       .irq_handler            = ingenic_drm_irq_handler,
 };
 
 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)
                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) {
                dev_err(dev, "Unable to install IRQ handler\n");
                return ret;