diff options
author | Inki Dae <inki.dae@samsung.com> | 2012-02-14 11:15:09 +0900 |
---|---|---|
committer | Inki Dae <inki.dae@samsung.com> | 2012-02-15 10:29:11 +0900 |
commit | 039129b0b46c5b0883cd78c8817f765323afa972 (patch) | |
tree | d4ef60f171e484263eaf1017f70f0e043f6b721c /drivers/gpu/drm/exynos/exynos_drm_fimd.c | |
parent | 63fb8989e21810aa097bfa83297c33768b6ef1ca (diff) | |
download | op-kernel-dev-039129b0b46c5b0883cd78c8817f765323afa972.zip op-kernel-dev-039129b0b46c5b0883cd78c8817f765323afa972.tar.gz |
drm/exynos: fixed page flip issue.
with vblank_refcount = 1, there was the case that drm_vblank_put
is called by specific page flip function so this patch fixes the
issue.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Diffstat (limited to 'drivers/gpu/drm/exynos/exynos_drm_fimd.c')
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_fimd.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c index b6a737d..0dbb32b 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c @@ -604,7 +604,12 @@ static void fimd_finish_pageflip(struct drm_device *drm_dev, int crtc) } if (is_checked) { - drm_vblank_put(drm_dev, crtc); + /* + * call drm_vblank_put only in case that drm_vblank_get was + * called. + */ + if (atomic_read(&drm_dev->vblank_refcount[crtc]) > 0) + drm_vblank_put(drm_dev, crtc); /* * don't off vblank if vblank_disable_allowed is 1, |