diff options
author | Inki Dae <inki.dae@samsung.com> | 2012-02-15 03:25:20 +0100 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2012-02-16 10:40:50 +0100 |
commit | c5614ae326c7fdd244d8e0365b8b78d5e3cd5bf4 (patch) | |
tree | 3e3a21cff4a79e6f701354b48c5b4a650361f5f4 /drivers/gpu/drm/exynos/exynos_mixer.c | |
parent | drm/exynos: added possible_clones setup function. (diff) | |
download | linux-c5614ae326c7fdd244d8e0365b8b78d5e3cd5bf4.tar.xz linux-c5614ae326c7fdd244d8e0365b8b78d5e3cd5bf4.zip |
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>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/exynos/exynos_mixer.c')
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_mixer.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c index 47961679c447..93846e810e38 100644 --- a/drivers/gpu/drm/exynos/exynos_mixer.c +++ b/drivers/gpu/drm/exynos/exynos_mixer.c @@ -712,7 +712,12 @@ static void mixer_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); spin_unlock_irqrestore(&drm_dev->event_lock, flags); } |