This is now handled by the core, drivers can totally ignore lifetime
issues of drm events.

Cc: Tomeu Vizoso <tomeu.vizoso at collabora.com>
Cc: Mark yao <mark.yao at rock-chips.com>
Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
---
 drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 22 ----------------------
 drivers/gpu/drm/rockchip/rockchip_drm_drv.h |  1 -
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 20 --------------------
 3 files changed, 43 deletions(-)

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c 
b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
index 2fac6799ceb2..2251121343e6 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
@@ -257,27 +257,6 @@ static int rockchip_drm_unload(struct drm_device *drm_dev)
        return 0;
 }

-static void rockchip_drm_crtc_cancel_pending_vblank(struct drm_crtc *crtc,
-                                                   struct drm_file *file_priv)
-{
-       struct rockchip_drm_private *priv = crtc->dev->dev_private;
-       int pipe = drm_crtc_index(crtc);
-
-       if (pipe < ROCKCHIP_MAX_CRTC &&
-           priv->crtc_funcs[pipe] &&
-           priv->crtc_funcs[pipe]->cancel_pending_vblank)
-               priv->crtc_funcs[pipe]->cancel_pending_vblank(crtc, file_priv);
-}
-
-static void rockchip_drm_preclose(struct drm_device *dev,
-                                 struct drm_file *file_priv)
-{
-       struct drm_crtc *crtc;
-
-       list_for_each_entry(crtc, &dev->mode_config.crtc_list, head)
-               rockchip_drm_crtc_cancel_pending_vblank(crtc, file_priv);
-}
-
 void rockchip_drm_lastclose(struct drm_device *dev)
 {
        struct rockchip_drm_private *priv = dev->dev_private;
@@ -303,7 +282,6 @@ static struct drm_driver rockchip_drm_driver = {
                                  DRIVER_PRIME | DRIVER_ATOMIC,
        .load                   = rockchip_drm_load,
        .unload                 = rockchip_drm_unload,
-       .preclose               = rockchip_drm_preclose,
        .lastclose              = rockchip_drm_lastclose,
        .get_vblank_counter     = drm_vblank_no_hw_counter,
        .enable_vblank          = rockchip_drm_crtc_enable_vblank,
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.h 
b/drivers/gpu/drm/rockchip/rockchip_drm_drv.h
index 7684503ff765..005634484441 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.h
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.h
@@ -40,7 +40,6 @@ struct rockchip_crtc_funcs {
        int (*enable_vblank)(struct drm_crtc *crtc);
        void (*disable_vblank)(struct drm_crtc *crtc);
        void (*wait_for_update)(struct drm_crtc *crtc);
-       void (*cancel_pending_vblank)(struct drm_crtc *crtc, struct drm_file 
*file_priv);
 };

 struct rockchip_crtc_state {
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c 
b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
index 8cde1ea62978..37a1339c30ae 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
@@ -884,30 +884,10 @@ static void vop_crtc_wait_for_update(struct drm_crtc 
*crtc)
        WARN_ON(!wait_for_completion_timeout(&vop->wait_update_complete, 100));
 }

-static void vop_crtc_cancel_pending_vblank(struct drm_crtc *crtc,
-                                          struct drm_file *file_priv)
-{
-       struct drm_device *drm = crtc->dev;
-       struct vop *vop = to_vop(crtc);
-       struct drm_pending_vblank_event *e;
-       unsigned long flags;
-
-       spin_lock_irqsave(&drm->event_lock, flags);
-       e = vop->event;
-       if (e && e->base.file_priv == file_priv) {
-               vop->event = NULL;
-
-               kfree(&e->base);
-               file_priv->event_space += sizeof(e->event);
-       }
-       spin_unlock_irqrestore(&drm->event_lock, flags);
-}
-
 static const struct rockchip_crtc_funcs private_crtc_funcs = {
        .enable_vblank = vop_crtc_enable_vblank,
        .disable_vblank = vop_crtc_disable_vblank,
        .wait_for_update = vop_crtc_wait_for_update,
-       .cancel_pending_vblank = vop_crtc_cancel_pending_vblank,
 };

 static bool vop_crtc_mode_fixup(struct drm_crtc *crtc,
-- 
2.8.1

Reply via email to