drm/imx: use drm_atomic_set_fence_for_plane() to set the fence
authorGustavo Padovan <gustavo.padovan@collabora.co.uk>
Mon, 7 Nov 2016 10:03:31 +0000 (19:03 +0900)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 8 Nov 2016 10:27:14 +0000 (11:27 +0100)
drm_atomic_set_fence_for_plane() is smart and won't overwrite
plane_state->fence if the user already set an explicit fence there.

Cc: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1478513013-3221-2-git-send-email-gustavo@padovan.org
drivers/gpu/drm/imx/imx-drm-core.c

index 98df09c2b3885b0ad0e5d99434063005a11f6712..07fe9556c7aabb91c1330aeec4c2b02e3ff60e2f 100644 (file)
@@ -158,6 +158,7 @@ static int imx_drm_atomic_commit(struct drm_device *dev,
        struct drm_plane_state *plane_state;
        struct drm_plane *plane;
        struct dma_buf *dma_buf;
+       struct dma_fence *fence;
        int i;
 
        /*
@@ -170,8 +171,9 @@ static int imx_drm_atomic_commit(struct drm_device *dev,
                                                         0)->base.dma_buf;
                        if (!dma_buf)
                                continue;
-                       plane_state->fence =
-                               reservation_object_get_excl_rcu(dma_buf->resv);
+                       fence = reservation_object_get_excl_rcu(dma_buf->resv);
+
+                       drm_atomic_set_fence_for_plane(plane_state, fence);
                }
        }