Commit 65a96965 authored by Thomas Zimmermann's avatar Thomas Zimmermann
Browse files

drm/meson: 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.

Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: default avatarNeil Armstrong <narmstrong@baylibre.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210706074545.8763-1-tzimmermann@suse.de
parent 7915d561
Loading
Loading
Loading
Loading
+3 −7
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@
#include <drm/drm_fb_helper.h>
#include <drm/drm_gem_cma_helper.h>
#include <drm/drm_gem_framebuffer_helper.h>
#include <drm/drm_irq.h>
#include <drm/drm_modeset_helper_vtables.h>
#include <drm/drm_probe_helper.h>
#include <drm/drm_vblank.h>
@@ -94,9 +93,6 @@ DEFINE_DRM_GEM_CMA_FOPS(fops);
static const struct drm_driver meson_driver = {
	.driver_features	= DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,

	/* IRQ */
	.irq_handler		= meson_irq,

	/* CMA Ops */
	DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(meson_dumb_create),

@@ -335,7 +331,7 @@ static int meson_drv_bind_master(struct device *dev, bool has_components)
	if (ret)
		goto free_drm;

	ret = drm_irq_install(drm, priv->vsync_irq);
	ret = request_irq(priv->vsync_irq, meson_irq, 0, drm->driver->name, drm);
	if (ret)
		goto free_drm;

@@ -354,7 +350,7 @@ static int meson_drv_bind_master(struct device *dev, bool has_components)
	return 0;

uninstall_irq:
	drm_irq_uninstall(drm);
	free_irq(priv->vsync_irq, drm);
free_drm:
	drm_dev_put(drm);

@@ -382,7 +378,7 @@ static void meson_drv_unbind(struct device *dev)
	drm_kms_helper_poll_fini(drm);
	drm_atomic_helper_shutdown(drm);
	component_unbind_all(dev, drm);
	drm_irq_uninstall(drm);
	free_irq(priv->vsync_irq, drm);
	drm_dev_put(drm);

	if (priv->afbcd.ops) {