diff options
author | Rob Clark <robdclark@gmail.com> | 2014-11-25 20:41:18 +0300 |
---|---|---|
committer | Rob Clark <robdclark@gmail.com> | 2014-12-18 22:32:14 +0300 |
commit | f86afecf0defbc8d046bc7a7c5fc19a8c9ba1364 (patch) | |
tree | 1522a0b086298ed21cda7ea41cd74fa3e0b4ee2f /drivers/gpu/drm/msm/msm_drv.h | |
parent | 5acb07ea802c3a06bbe22cba32fbb8eb97b6b3ae (diff) | |
download | linux-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.h | 4 |
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]; |