vblank references are handled in the top-level atomic complete
function, so no need to grab them again in the vop driver.

Signed-off-by: Sean Paul <seanpaul at chromium.org>
---
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c 
b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
index 1787084..7003e4d 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
@@ -112,7 +112,6 @@ struct vop {
        struct device *dev;
        struct drm_device *drm_dev;
        bool is_enabled;
-       bool vblank_active;

        /* mutex vsync_ work */
        struct mutex vsync_mutex;
@@ -1108,10 +1107,6 @@ static void vop_crtc_atomic_begin(struct drm_crtc *crtc,
        struct vop *vop = to_vop(crtc);

        spin_lock_irq(&crtc->dev->event_lock);
-       vop->vblank_active = true;
-       WARN_ON(drm_crtc_vblank_get(crtc) != 0);
-       WARN_ON(vop->event);
-
        if (crtc->state->event) {
                vop->event = crtc->state->event;
                crtc->state->event = NULL;
@@ -1201,11 +1196,6 @@ static void vop_handle_vblank(struct vop *vop)
        if (vop->event) {
                drm_crtc_send_vblank_event(crtc, vop->event);
                vop->event = NULL;
-
-       }
-       if (vop->vblank_active) {
-               vop->vblank_active = false;
-               drm_crtc_vblank_put(crtc);
        }
        spin_unlock_irqrestore(&drm->event_lock, flags);

@@ -1476,7 +1466,6 @@ static int vop_initial(struct vop *vop)
        clk_disable(vop->aclk);

        vop->is_enabled = false;
-       vop->vblank_active = false;

        return 0;

-- 
2.8.0.rc3.226.g39d4020

Reply via email to