mirror of https://gitee.com/openkylin/linux.git
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
This commit is contained in:
parent
53190c7194
commit
8c04fdeef3
|
@ -269,18 +269,7 @@ static void omap_crtc_complete_page_flip(struct drm_crtc *crtc)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
spin_lock_irqsave(&dev->event_lock, flags);
|
spin_lock_irqsave(&dev->event_lock, flags);
|
||||||
|
drm_crtc_send_vblank_event(crtc, event);
|
||||||
list_del(&event->base.link);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Queue the event for delivery if it's still linked to a file
|
|
||||||
* handle, otherwise just destroy it.
|
|
||||||
*/
|
|
||||||
if (event->base.file_priv)
|
|
||||||
drm_crtc_send_vblank_event(crtc, event);
|
|
||||||
else
|
|
||||||
event->base.destroy(&event->base);
|
|
||||||
|
|
||||||
spin_unlock_irqrestore(&dev->event_lock, flags);
|
spin_unlock_irqrestore(&dev->event_lock, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -142,7 +142,6 @@ static int omap_atomic_commit(struct drm_device *dev,
|
||||||
{
|
{
|
||||||
struct omap_drm_private *priv = dev->dev_private;
|
struct omap_drm_private *priv = dev->dev_private;
|
||||||
struct omap_atomic_state_commit *commit;
|
struct omap_atomic_state_commit *commit;
|
||||||
unsigned long flags;
|
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -175,17 +174,6 @@ static int omap_atomic_commit(struct drm_device *dev,
|
||||||
priv->commit.pending |= commit->crtcs;
|
priv->commit.pending |= commit->crtcs;
|
||||||
spin_unlock(&priv->commit.lock);
|
spin_unlock(&priv->commit.lock);
|
||||||
|
|
||||||
/* Keep track of all CRTC events to unlink them in preclose(). */
|
|
||||||
spin_lock_irqsave(&dev->event_lock, flags);
|
|
||||||
for (i = 0; i < dev->mode_config.num_crtc; ++i) {
|
|
||||||
struct drm_crtc_state *cstate = state->crtc_states[i];
|
|
||||||
|
|
||||||
if (cstate && cstate->event)
|
|
||||||
list_add_tail(&cstate->event->base.link,
|
|
||||||
&priv->commit.events);
|
|
||||||
}
|
|
||||||
spin_unlock_irqrestore(&dev->event_lock, flags);
|
|
||||||
|
|
||||||
/* Swap the state, this is the point of no return. */
|
/* Swap the state, this is the point of no return. */
|
||||||
drm_atomic_helper_swap_state(dev, state);
|
drm_atomic_helper_swap_state(dev, state);
|
||||||
|
|
||||||
|
@ -673,7 +661,6 @@ static int dev_load(struct drm_device *dev, unsigned long flags)
|
||||||
priv->wq = alloc_ordered_workqueue("omapdrm", 0);
|
priv->wq = alloc_ordered_workqueue("omapdrm", 0);
|
||||||
init_waitqueue_head(&priv->commit.wait);
|
init_waitqueue_head(&priv->commit.wait);
|
||||||
spin_lock_init(&priv->commit.lock);
|
spin_lock_init(&priv->commit.lock);
|
||||||
INIT_LIST_HEAD(&priv->commit.events);
|
|
||||||
|
|
||||||
spin_lock_init(&priv->list_lock);
|
spin_lock_init(&priv->list_lock);
|
||||||
INIT_LIST_HEAD(&priv->obj_list);
|
INIT_LIST_HEAD(&priv->obj_list);
|
||||||
|
@ -787,33 +774,6 @@ static void dev_lastclose(struct drm_device *dev)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void dev_preclose(struct drm_device *dev, struct drm_file *file)
|
|
||||||
{
|
|
||||||
struct omap_drm_private *priv = dev->dev_private;
|
|
||||||
struct drm_pending_event *event;
|
|
||||||
unsigned long flags;
|
|
||||||
|
|
||||||
DBG("preclose: dev=%p", dev);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Unlink all pending CRTC events to make sure they won't be queued up
|
|
||||||
* by a pending asynchronous commit.
|
|
||||||
*/
|
|
||||||
spin_lock_irqsave(&dev->event_lock, flags);
|
|
||||||
list_for_each_entry(event, &priv->commit.events, link) {
|
|
||||||
if (event->file_priv == file) {
|
|
||||||
file->event_space += event->event->length;
|
|
||||||
event->file_priv = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
spin_unlock_irqrestore(&dev->event_lock, flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void dev_postclose(struct drm_device *dev, struct drm_file *file)
|
|
||||||
{
|
|
||||||
DBG("postclose: dev=%p, file=%p", dev, file);
|
|
||||||
}
|
|
||||||
|
|
||||||
static const struct vm_operations_struct omap_gem_vm_ops = {
|
static const struct vm_operations_struct omap_gem_vm_ops = {
|
||||||
.fault = omap_gem_fault,
|
.fault = omap_gem_fault,
|
||||||
.open = drm_gem_vm_open,
|
.open = drm_gem_vm_open,
|
||||||
|
@ -838,8 +798,6 @@ static struct drm_driver omap_drm_driver = {
|
||||||
.unload = dev_unload,
|
.unload = dev_unload,
|
||||||
.open = dev_open,
|
.open = dev_open,
|
||||||
.lastclose = dev_lastclose,
|
.lastclose = dev_lastclose,
|
||||||
.preclose = dev_preclose,
|
|
||||||
.postclose = dev_postclose,
|
|
||||||
.set_busid = drm_platform_set_busid,
|
.set_busid = drm_platform_set_busid,
|
||||||
.get_vblank_counter = drm_vblank_no_hw_counter,
|
.get_vblank_counter = drm_vblank_no_hw_counter,
|
||||||
.enable_vblank = omap_irq_enable_vblank,
|
.enable_vblank = omap_irq_enable_vblank,
|
||||||
|
|
|
@ -106,7 +106,6 @@ struct omap_drm_private {
|
||||||
|
|
||||||
/* atomic commit */
|
/* atomic commit */
|
||||||
struct {
|
struct {
|
||||||
struct list_head events;
|
|
||||||
wait_queue_head_t wait;
|
wait_queue_head_t wait;
|
||||||
u32 pending;
|
u32 pending;
|
||||||
spinlock_t lock; /* Protects commit.pending */
|
spinlock_t lock; /* Protects commit.pending */
|
||||||
|
|
Loading…
Reference in New Issue