summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/msm/msm_drv.h
diff options
context:
space:
mode:
authorRob Clark <robdclark@gmail.com>2014-11-25 20:41:18 +0300
committerRob Clark <robdclark@gmail.com>2014-12-18 22:32:14 +0300
commitf86afecf0defbc8d046bc7a7c5fc19a8c9ba1364 (patch)
tree1522a0b086298ed21cda7ea41cd74fa3e0b4ee2f /drivers/gpu/drm/msm/msm_drv.h
parent5acb07ea802c3a06bbe22cba32fbb8eb97b6b3ae (diff)
downloadlinux-f86afecf0defbc8d046bc7a7c5fc19a8c9ba1364.tar.xz
drm/msm: block incoming update on pending updates
We can't have multiple updates pending on a given CRTC, and we don't want a sync update to race w/ an async update that preceeded it. So keep track of which CRTCs have updates in flight, and block later updates that would conflict. Signed-off-by: Rob Clark <robdclark@gmail.com>
Diffstat (limited to 'drivers/gpu/drm/msm/msm_drv.h')
-rw-r--r--drivers/gpu/drm/msm/msm_drv.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h
index 136303818436..b69ef2d5a26c 100644
--- a/drivers/gpu/drm/msm/msm_drv.h
+++ b/drivers/gpu/drm/msm/msm_drv.h
@@ -96,6 +96,10 @@ struct msm_drm_private {
/* callbacks deferred until bo is inactive: */
struct list_head fence_cbs;
+ /* crtcs pending async atomic updates: */
+ uint32_t pending_crtcs;
+ wait_queue_head_t pending_crtcs_event;
+
/* registered MMUs: */
unsigned int num_mmus;
struct msm_mmu *mmus[NUM_DOMAINS];