summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/exynos/exynos_drm_crtc.h
diff options
context:
space:
mode:
authorGustavo Padovan2015-08-15 18:26:14 +0200
committerInki Dae2015-08-30 17:27:37 +0200
commit822f6dfd714c961e3c5648b1d4a5ac10f807d592 (patch)
treebcc63655f5ea66b9381fab9278dcae83e38e051b /drivers/gpu/drm/exynos/exynos_drm_crtc.h
parentdrm/exynos: fimd: move window protect code to prepare/cleanup_plane (diff)
downloadkernel-qcow2-linux-822f6dfd714c961e3c5648b1d4a5ac10f807d592.tar.gz
kernel-qcow2-linux-822f6dfd714c961e3c5648b1d4a5ac10f807d592.tar.xz
kernel-qcow2-linux-822f6dfd714c961e3c5648b1d4a5ac10f807d592.zip
drm/exynos: check for pending fb before finish update
The current code was ignoring the end of update for all overlay planes, caring only for the primary plane update in case of pageflip. This change adds a change to start to check for pending updates for all planes through exynos_plane->pending_fb. At the start of plane update the pending_fb is set with the fb to be shown on the screen. Then only when to fb is already presented in the screen we set pending_fb to NULL to signal that the update was finished. Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Inki Dae <inki.dae@samsung.com> fixup! drm/exynos: check for pending fb before finish update
Diffstat (limited to 'drivers/gpu/drm/exynos/exynos_drm_crtc.h')
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_crtc.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.h b/drivers/gpu/drm/exynos/exynos_drm_crtc.h
index 9e7027d6c2f6..8bedfde2084a 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_crtc.h
+++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.h
@@ -25,7 +25,8 @@ struct exynos_drm_crtc *exynos_drm_crtc_create(struct drm_device *drm_dev,
void *context);
int exynos_drm_crtc_enable_vblank(struct drm_device *dev, int pipe);
void exynos_drm_crtc_disable_vblank(struct drm_device *dev, int pipe);
-void exynos_drm_crtc_finish_pageflip(struct exynos_drm_crtc *exynos_crtc);
+void exynos_drm_crtc_finish_update(struct exynos_drm_crtc *exynos_crtc,
+ struct exynos_drm_plane *exynos_plane);
void exynos_drm_crtc_complete_scanout(struct drm_framebuffer *fb);
/* This function gets pipe value to crtc device matched with out_type. */