diff options
author | Gustavo Padovan <gustavo.padovan@collabora.co.uk> | 2014-11-13 19:27:20 -0500 |
---|---|---|
committer | Inki Dae <daeinki@gmail.com> | 2015-01-25 07:28:04 -0500 |
commit | ea8802d3ddde245e8b8a56a19d70e9b97737880f (patch) | |
tree | 3bf443c9e4090d8bf38a38034b10357be789ca92 /drivers/gpu/drm/exynos | |
parent | e7cd81111041e3fbec00999f5629080989090031 (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.c | 8 |
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 | } |