aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/exynos
diff options
context:
space:
mode:
authorGustavo Padovan <gustavo.padovan@collabora.co.uk>2014-11-13 19:27:20 -0500
committerInki Dae <daeinki@gmail.com>2015-01-25 07:28:04 -0500
commitea8802d3ddde245e8b8a56a19d70e9b97737880f (patch)
tree3bf443c9e4090d8bf38a38034b10357be789ca92 /drivers/gpu/drm/exynos
parente7cd81111041e3fbec00999f5629080989090031 (diff)
drm/exynos: don't do any DPMS operation while updating planes
DPMS only makes sense when the mode changes, for plane update changes do not perform any dpms operation. This move places the win_commit() and commit() calls directly in the code instead of calling exynos_drm_crtc_commit() thus avoiding DPMS operations. Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> 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.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
index 13c7ba5d5d5d..e946b5f5e3ac 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
@@ -115,6 +115,8 @@ static int exynos_drm_crtc_mode_set_commit(struct drm_crtc *crtc, int x, int y,
115 struct drm_framebuffer *old_fb) 115 struct drm_framebuffer *old_fb)
116{ 116{
117 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); 117 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc);
118 struct exynos_drm_manager *manager = exynos_crtc->manager;
119 struct exynos_drm_plane *exynos_plane = to_exynos_plane(crtc->primary);
118 struct drm_framebuffer *fb = crtc->primary->fb; 120 struct drm_framebuffer *fb = crtc->primary->fb;
119 unsigned int crtc_w; 121 unsigned int crtc_w;
120 unsigned int crtc_h; 122 unsigned int crtc_h;
@@ -134,7 +136,11 @@ static int exynos_drm_crtc_mode_set_commit(struct drm_crtc *crtc, int x, int y,
134 if (ret) 136 if (ret)
135 return ret; 137 return ret;
136 138
137 exynos_drm_crtc_commit(crtc); 139 if (manager->ops->win_commit)
140 manager->ops->win_commit(manager, exynos_plane->zpos);
141
142 if (manager->ops->commit)
143 manager->ops->commit(manager);
138 144
139 return 0; 145 return 0;
140} 146}