summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/exynos
diff options
context:
space:
mode:
authorAndrzej Hajda2017-03-15 15:41:01 +0100
committerInki Dae2017-06-01 09:21:33 +0200
commit73b7b44fbd93509d3f30c83ca53c79a5534b0d68 (patch)
tree5a5e6561cb18bf30c1974b359867c27d7b968e26 /drivers/gpu/drm/exynos
parentMerge tag 'exynos-drm-fixes-for-v4.12' of git://git.kernel.org/pub/scm/linux/... (diff)
downloadkernel-qcow2-linux-73b7b44fbd93509d3f30c83ca53c79a5534b0d68.tar.gz
kernel-qcow2-linux-73b7b44fbd93509d3f30c83ca53c79a5534b0d68.tar.xz
kernel-qcow2-linux-73b7b44fbd93509d3f30c83ca53c79a5534b0d68.zip
drm/exynos: simplify completion event handling
All Exynos CRTC drivers shouldn't fail at referencing vblank events, alternate path is actually dead code. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
Diffstat (limited to 'drivers/gpu/drm/exynos')
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_crtc.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
index 0620d3ca2d06..918497404aec 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
@@ -105,16 +105,15 @@ void exynos_crtc_handle_event(struct exynos_drm_crtc *exynos_crtc)
struct drm_pending_vblank_event *event = crtc->state->event;
unsigned long flags;
- if (event) {
- crtc->state->event = NULL;
- spin_lock_irqsave(&crtc->dev->event_lock, flags);
- if (drm_crtc_vblank_get(crtc) == 0)
- drm_crtc_arm_vblank_event(crtc, event);
- else
- drm_crtc_send_vblank_event(crtc, event);
- spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
- }
+ if (!event)
+ return;
+ crtc->state->event = NULL;
+
+ WARN_ON(drm_crtc_vblank_get(crtc) != 0);
+ spin_lock_irqsave(&crtc->dev->event_lock, flags);
+ drm_crtc_arm_vblank_event(crtc, event);
+ spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
}
static void exynos_drm_crtc_destroy(struct drm_crtc *crtc)