diff options
| author | Andrzej Hajda <a.hajda@samsung.com> | 2014-10-10 08:31:55 -0400 |
|---|---|---|
| committer | Inki Dae <daeinki@gmail.com> | 2014-11-02 11:51:28 -0500 |
| commit | d6948b2fd870f3e375fa0f0a37dae3feb85e5bc9 (patch) | |
| tree | bb1878fb0719eccd926104a4915e75e61efaa3f6 | |
| parent | 3cb6830a75665ec4efa99c69d52c5d9df597c397 (diff) | |
drm/exynos: enable vblank after DPMS on
Before DPMS off driver disables vblank.
It should be balanced by vblank enable after DPMS on.
The patch fixes issue with page_flip ioctl not being able
to acquire vblank counter introduced by patch:
drm: Always reject drm_vblank_get() after drm_vblank_off()
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
| -rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_crtc.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c index 8e38e9f8e542..45026e693225 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c | |||
| @@ -71,13 +71,16 @@ static void exynos_drm_crtc_dpms(struct drm_crtc *crtc, int mode) | |||
| 71 | !atomic_read(&exynos_crtc->pending_flip), | 71 | !atomic_read(&exynos_crtc->pending_flip), |
| 72 | HZ/20)) | 72 | HZ/20)) |
| 73 | atomic_set(&exynos_crtc->pending_flip, 0); | 73 | atomic_set(&exynos_crtc->pending_flip, 0); |
| 74 | drm_vblank_off(crtc->dev, exynos_crtc->pipe); | 74 | drm_crtc_vblank_off(crtc); |
| 75 | } | 75 | } |
| 76 | 76 | ||
| 77 | if (manager->ops->dpms) | 77 | if (manager->ops->dpms) |
| 78 | manager->ops->dpms(manager, mode); | 78 | manager->ops->dpms(manager, mode); |
| 79 | 79 | ||
| 80 | exynos_crtc->dpms = mode; | 80 | exynos_crtc->dpms = mode; |
| 81 | |||
| 82 | if (mode == DRM_MODE_DPMS_ON) | ||
| 83 | drm_crtc_vblank_on(crtc); | ||
| 81 | } | 84 | } |
| 82 | 85 | ||
| 83 | static void exynos_drm_crtc_prepare(struct drm_crtc *crtc) | 86 | static void exynos_drm_crtc_prepare(struct drm_crtc *crtc) |
