Message ID | 20210715100258.6638-1-tzimmermann@suse.de (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | [v2] drm/ingenic: Convert to Linux IRQ interfaces | expand |
On 2021-07-15 12:02, Thomas Zimmermann wrote: > 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> Reviewed-by: Paul Cercueil <paul@crapouillou.net> Cheers, -Paul > --- > drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 5 +---- > 1 file changed, 1 insertion(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c > b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c > index c296472164d9..857ed070b21b 100644 > --- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c > +++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c > @@ -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;
diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c index c296472164d9..857ed070b21b 100644 --- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c +++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c @@ -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;