dma-buf/fence-chain: Add fence deadline support
authorRob Clark <robdclark@chromium.org>
Fri, 3 Sep 2021 18:47:58 +0000 (11:47 -0700)
committerRob Clark <robdclark@chromium.org>
Tue, 28 Mar 2023 20:38:52 +0000 (13:38 -0700)
Propagate the deadline to all the fences in the chain.

v2: Use dma_fence_chain_contained [Tvrtko]

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Christian König <christian.koenig@amd.com>
drivers/dma-buf/dma-fence-chain.c

index a0d9205..9663ba1 100644 (file)
@@ -206,6 +206,17 @@ static void dma_fence_chain_release(struct dma_fence *fence)
        dma_fence_free(fence);
 }
 
+
+static void dma_fence_chain_set_deadline(struct dma_fence *fence,
+                                        ktime_t deadline)
+{
+       dma_fence_chain_for_each(fence, fence) {
+               struct dma_fence *f = dma_fence_chain_contained(fence);
+
+               dma_fence_set_deadline(f, deadline);
+       }
+}
+
 const struct dma_fence_ops dma_fence_chain_ops = {
        .use_64bit_seqno = true,
        .get_driver_name = dma_fence_chain_get_driver_name,
@@ -213,6 +224,7 @@ const struct dma_fence_ops dma_fence_chain_ops = {
        .enable_signaling = dma_fence_chain_enable_signaling,
        .signaled = dma_fence_chain_signaled,
        .release = dma_fence_chain_release,
+       .set_deadline = dma_fence_chain_set_deadline,
 };
 EXPORT_SYMBOL(dma_fence_chain_ops);