summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/msm/msm_drv.c
diff options
context:
space:
mode:
authorRob Clark <robdclark@gmail.com>2016-03-16 18:18:17 -0400
committerRob Clark <robdclark@gmail.com>2016-05-08 10:22:14 -0400
commitba00c3f2f0c84456ffe9d548823ff4fb8e4e7ed4 (patch)
tree1cddb413a2c1f4281f938f356bf74cfaf33cedcc /drivers/gpu/drm/msm/msm_drv.c
parentca762a8ae7f453978a4769af9dcd3cb08e45b932 (diff)
downloadlinux-ba00c3f2f0c84456ffe9d548823ff4fb8e4e7ed4.tar.gz
linux-ba00c3f2f0c84456ffe9d548823ff4fb8e4e7ed4.tar.xz
drm/msm: remove fence_cbs
This was only used for atomic commit these days. So instead just give atomic it's own work-queue where we can do a block on each bo in turn. Simplifies things a whole bunch and makes the 'struct fence' conversion easier. Signed-off-by: Rob Clark <robdclark@gmail.com>
Diffstat (limited to 'drivers/gpu/drm/msm/msm_drv.c')
-rw-r--r--drivers/gpu/drm/msm/msm_drv.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index 2b859f38772a..745793991ba6 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -213,6 +213,9 @@ static int msm_unload(struct drm_device *dev)
flush_workqueue(priv->wq);
destroy_workqueue(priv->wq);
+ flush_workqueue(priv->atomic_wq);
+ destroy_workqueue(priv->atomic_wq);
+
if (kms) {
pm_runtime_disable(dev->dev);
kms->funcs->destroy(kms);
@@ -339,6 +342,7 @@ static int msm_load(struct drm_device *dev, unsigned long flags)
dev->dev_private = priv;
priv->wq = alloc_ordered_workqueue("msm", 0);
+ priv->atomic_wq = alloc_ordered_workqueue("msm:atomic", 0);
init_waitqueue_head(&priv->pending_crtcs_event);
INIT_LIST_HEAD(&priv->inactive_list);