aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2016-01-25 16:16:50 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2016-02-08 03:55:50 -0500
commit8c04fdeef343a18617968b672f212d1634add14d (patch)
tree497d2dc00212f034137c5249d603ef245e2b3d03
parent53190c7194d9a8337fe419134e44c30eb63ebd08 (diff)
drm/omap: Nuke close hooks
Again since the core takes care of this we can remove them. While at it also remove the postclose hook, it's empty. v2: Laurent pointed me at even more code to delete. v3: Remove unused flags (Tomi). Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> Acked-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1453756616-28942-9-git-send-email-daniel.vetter@ffwll.ch
-rw-r--r--drivers/gpu/drm/omapdrm/omap_crtc.c13
-rw-r--r--drivers/gpu/drm/omapdrm/omap_drv.c42
-rw-r--r--drivers/gpu/drm/omapdrm/omap_drv.h1
3 files changed, 1 insertions, 55 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c
index 2ed0754ed19e..d38fcbcc43a8 100644
--- a/drivers/gpu/drm/omapdrm/omap_crtc.c
+++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
@@ -269,18 +269,7 @@ static void omap_crtc_complete_page_flip(struct drm_crtc *crtc)
269 return; 269 return;
270 270
271 spin_lock_irqsave(&dev->event_lock, flags); 271 spin_lock_irqsave(&dev->event_lock, flags);
272 272 drm_crtc_send_vblank_event(crtc, event);
273 list_del(&event->base.link);
274
275 /*
276 * Queue the event for delivery if it's still linked to a file
277 * handle, otherwise just destroy it.
278 */
279 if (event->base.file_priv)
280 drm_crtc_send_vblank_event(crtc, event);
281 else
282 event->base.destroy(&event->base);
283
284 spin_unlock_irqrestore(&dev->event_lock, flags); 273 spin_unlock_irqrestore(&dev->event_lock, flags);
285} 274}
286 275
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
index dfafdb602ad2..33370f42e4d7 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.c
+++ b/drivers/gpu/drm/omapdrm/omap_drv.c
@@ -142,7 +142,6 @@ static int omap_atomic_commit(struct drm_device *dev,
142{ 142{
143 struct omap_drm_private *priv = dev->dev_private; 143 struct omap_drm_private *priv = dev->dev_private;
144 struct omap_atomic_state_commit *commit; 144 struct omap_atomic_state_commit *commit;
145 unsigned long flags;
146 unsigned int i; 145 unsigned int i;
147 int ret; 146 int ret;
148 147
@@ -175,17 +174,6 @@ static int omap_atomic_commit(struct drm_device *dev,
175 priv->commit.pending |= commit->crtcs; 174 priv->commit.pending |= commit->crtcs;
176 spin_unlock(&priv->commit.lock); 175 spin_unlock(&priv->commit.lock);
177 176
178 /* Keep track of all CRTC events to unlink them in preclose(). */
179 spin_lock_irqsave(&dev->event_lock, flags);
180 for (i = 0; i < dev->mode_config.num_crtc; ++i) {
181 struct drm_crtc_state *cstate = state->crtc_states[i];
182
183 if (cstate && cstate->event)
184 list_add_tail(&cstate->event->base.link,
185 &priv->commit.events);
186 }
187 spin_unlock_irqrestore(&dev->event_lock, flags);
188
189 /* Swap the state, this is the point of no return. */ 177 /* Swap the state, this is the point of no return. */
190 drm_atomic_helper_swap_state(dev, state); 178 drm_atomic_helper_swap_state(dev, state);
191 179
@@ -673,7 +661,6 @@ static int dev_load(struct drm_device *dev, unsigned long flags)
673 priv->wq = alloc_ordered_workqueue("omapdrm", 0); 661 priv->wq = alloc_ordered_workqueue("omapdrm", 0);
674 init_waitqueue_head(&priv->commit.wait); 662 init_waitqueue_head(&priv->commit.wait);
675 spin_lock_init(&priv->commit.lock); 663 spin_lock_init(&priv->commit.lock);
676 INIT_LIST_HEAD(&priv->commit.events);
677 664
678 spin_lock_init(&priv->list_lock); 665 spin_lock_init(&priv->list_lock);
679 INIT_LIST_HEAD(&priv->obj_list); 666 INIT_LIST_HEAD(&priv->obj_list);
@@ -787,33 +774,6 @@ static void dev_lastclose(struct drm_device *dev)
787 } 774 }
788} 775}
789 776
790static void dev_preclose(struct drm_device *dev, struct drm_file *file)
791{
792 struct omap_drm_private *priv = dev->dev_private;
793 struct drm_pending_event *event;
794 unsigned long flags;
795
796 DBG("preclose: dev=%p", dev);
797
798 /*
799 * Unlink all pending CRTC events to make sure they won't be queued up
800 * by a pending asynchronous commit.
801 */
802 spin_lock_irqsave(&dev->event_lock, flags);
803 list_for_each_entry(event, &priv->commit.events, link) {
804 if (event->file_priv == file) {
805 file->event_space += event->event->length;
806 event->file_priv = NULL;
807 }
808 }
809 spin_unlock_irqrestore(&dev->event_lock, flags);
810}
811
812static void dev_postclose(struct drm_device *dev, struct drm_file *file)
813{
814 DBG("postclose: dev=%p, file=%p", dev, file);
815}
816
817static const struct vm_operations_struct omap_gem_vm_ops = { 777static const struct vm_operations_struct omap_gem_vm_ops = {
818 .fault = omap_gem_fault, 778 .fault = omap_gem_fault,
819 .open = drm_gem_vm_open, 779 .open = drm_gem_vm_open,
@@ -838,8 +798,6 @@ static struct drm_driver omap_drm_driver = {
838 .unload = dev_unload, 798 .unload = dev_unload,
839 .open = dev_open, 799 .open = dev_open,
840 .lastclose = dev_lastclose, 800 .lastclose = dev_lastclose,
841 .preclose = dev_preclose,
842 .postclose = dev_postclose,
843 .set_busid = drm_platform_set_busid, 801 .set_busid = drm_platform_set_busid,
844 .get_vblank_counter = drm_vblank_no_hw_counter, 802 .get_vblank_counter = drm_vblank_no_hw_counter,
845 .enable_vblank = omap_irq_enable_vblank, 803 .enable_vblank = omap_irq_enable_vblank,
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.h b/drivers/gpu/drm/omapdrm/omap_drv.h
index 9e0030731c37..c23cbe6fe9e4 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.h
+++ b/drivers/gpu/drm/omapdrm/omap_drv.h
@@ -106,7 +106,6 @@ struct omap_drm_private {
106 106
107 /* atomic commit */ 107 /* atomic commit */
108 struct { 108 struct {
109 struct list_head events;
110 wait_queue_head_t wait; 109 wait_queue_head_t wait;
111 u32 pending; 110 u32 pending;
112 spinlock_t lock; /* Protects commit.pending */ 111 spinlock_t lock; /* Protects commit.pending */