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