Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ed4f8856 authored by Daniel Vetter's avatar Daniel Vetter
Browse files

drm/arc: Nuke event_list



This is just used for cleanup in preclose, and with the reworked event
handling code this is now done properly by the core.

Nuke it!

But it also shows that arc totally fails at sending out drm events for
flips. Next patch will hack that up.

v2: Rebase it!

Cc: Carlos Palminha <palminha@synopsys.com>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Cc: linux-snps-arc@lists.infradead.org
Reviewed-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1465388359-8070-2-git-send-email-daniel.vetter@ffwll.ch
parent d3a46183
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ struct arcpgu_drm_private {
	struct clk		*clk;
	struct drm_fbdev_cma	*fbdev;
	struct drm_framebuffer	*fb;
	struct list_head	event_list;
	struct drm_crtc		crtc;
	struct drm_plane	*plane;
};
+0 −4
Original line number Diff line number Diff line
@@ -155,10 +155,6 @@ static void arc_pgu_crtc_atomic_begin(struct drm_crtc *crtc,
		event->pipe = drm_crtc_index(crtc);

		WARN_ON(drm_crtc_vblank_get(crtc) != 0);

		spin_lock_irqsave(&crtc->dev->event_lock, flags);
		list_add_tail(&event->base.link, &arcpgu->event_list);
		spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
	}
}

+0 −19
Original line number Diff line number Diff line
@@ -81,22 +81,6 @@ static const struct file_operations arcpgu_drm_ops = {
	.mmap = arcpgu_gem_mmap,
};

static void arcpgu_preclose(struct drm_device *drm, struct drm_file *file)
{
	struct arcpgu_drm_private *arcpgu = drm->dev_private;
	struct drm_pending_vblank_event *e, *t;
	unsigned long flags;

	spin_lock_irqsave(&drm->event_lock, flags);
	list_for_each_entry_safe(e, t, &arcpgu->event_list, base.link) {
		if (e->base.file_priv != file)
			continue;
		list_del(&e->base.link);
		kfree(&e->base);
	}
	spin_unlock_irqrestore(&drm->event_lock, flags);
}

static void arcpgu_lastclose(struct drm_device *drm)
{
	struct arcpgu_drm_private *arcpgu = drm->dev_private;
@@ -122,8 +106,6 @@ static int arcpgu_load(struct drm_device *drm)
	if (IS_ERR(arcpgu->clk))
		return PTR_ERR(arcpgu->clk);

	INIT_LIST_HEAD(&arcpgu->event_list);

	arcpgu_setup_mode_config(drm);

	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -192,7 +174,6 @@ int arcpgu_unload(struct drm_device *drm)
static struct drm_driver arcpgu_drm_driver = {
	.driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_PRIME |
			   DRIVER_ATOMIC,
	.preclose = arcpgu_preclose,
	.lastclose = arcpgu_lastclose,
	.name = "drm-arcpgu",
	.desc = "ARC PGU Controller",