Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 49a53d49 authored by Daniel Vetter's avatar Daniel Vetter
Browse files

dma-fence: Make ->wait callback optional



Almost everyone uses dma_fence_default_wait.

Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: Gustavo Padovan <gustavo@padovan.org>
Cc: linux-media@vger.kernel.org
Cc: linaro-mm-sig@lists.linaro.org
Link: https://patchwork.freedesktop.org/patch/msgid/20180427061724.28497-6-daniel.vetter@ffwll.ch
parent 90e99655
Loading
Loading
Loading
Loading
+0 −1
Original line number Original line Diff line number Diff line
@@ -104,7 +104,6 @@ const struct dma_fence_ops dma_fence_array_ops = {
	.get_timeline_name = dma_fence_array_get_timeline_name,
	.get_timeline_name = dma_fence_array_get_timeline_name,
	.enable_signaling = dma_fence_array_enable_signaling,
	.enable_signaling = dma_fence_array_enable_signaling,
	.signaled = dma_fence_array_signaled,
	.signaled = dma_fence_array_signaled,
	.wait = dma_fence_default_wait,
	.release = dma_fence_array_release,
	.release = dma_fence_array_release,
};
};
EXPORT_SYMBOL(dma_fence_array_ops);
EXPORT_SYMBOL(dma_fence_array_ops);
+4 −1
Original line number Original line Diff line number Diff line
@@ -158,7 +158,10 @@ dma_fence_wait_timeout(struct dma_fence *fence, bool intr, signed long timeout)
		return -EINVAL;
		return -EINVAL;


	trace_dma_fence_wait_start(fence);
	trace_dma_fence_wait_start(fence);
	if (fence->ops->wait)
		ret = fence->ops->wait(fence, intr, timeout);
		ret = fence->ops->wait(fence, intr, timeout);
	else
		ret = dma_fence_default_wait(fence, intr, timeout);
	trace_dma_fence_wait_end(fence);
	trace_dma_fence_wait_end(fence);
	return ret;
	return ret;
}
}
+0 −1
Original line number Original line Diff line number Diff line
@@ -188,7 +188,6 @@ static const struct dma_fence_ops timeline_fence_ops = {
	.get_timeline_name = timeline_fence_get_timeline_name,
	.get_timeline_name = timeline_fence_get_timeline_name,
	.enable_signaling = timeline_fence_enable_signaling,
	.enable_signaling = timeline_fence_enable_signaling,
	.signaled = timeline_fence_signaled,
	.signaled = timeline_fence_signaled,
	.wait = dma_fence_default_wait,
	.release = timeline_fence_release,
	.release = timeline_fence_release,
	.fence_value_str = timeline_fence_value_str,
	.fence_value_str = timeline_fence_value_str,
	.timeline_value_str = timeline_fence_timeline_value_str,
	.timeline_value_str = timeline_fence_timeline_value_str,
+8 −5
Original line number Original line Diff line number Diff line
@@ -191,11 +191,14 @@ struct dma_fence_ops {
	/**
	/**
	 * @wait:
	 * @wait:
	 *
	 *
	 * Custom wait implementation, or dma_fence_default_wait.
	 * Custom wait implementation, defaults to dma_fence_default_wait() if
	 * not set.
	 *
	 *
	 * Must not be NULL, set to dma_fence_default_wait for default implementation.
	 * The dma_fence_default_wait implementation should work for any fence, as long
	 * the dma_fence_default_wait implementation should work for any fence, as long
	 * as @enable_signaling works correctly. This hook allows drivers to
	 * as enable_signaling works correctly.
	 * have an optimized version for the case where a process context is
	 * already available, e.g. if @enable_signaling for the general case
	 * needs to set up a worker thread.
	 *
	 *
	 * Must return -ERESTARTSYS if the wait is intr = true and the wait was
	 * Must return -ERESTARTSYS if the wait is intr = true and the wait was
	 * interrupted, and remaining jiffies if fence has signaled, or 0 if wait
	 * interrupted, and remaining jiffies if fence has signaled, or 0 if wait
@@ -203,7 +206,7 @@ struct dma_fence_ops {
	 * which should be treated as if the fence is signaled. For example a hardware
	 * which should be treated as if the fence is signaled. For example a hardware
	 * lockup could be reported like that.
	 * lockup could be reported like that.
	 *
	 *
	 * This callback is mandatory.
	 * This callback is optional.
	 */
	 */
	signed long (*wait)(struct dma_fence *fence,
	signed long (*wait)(struct dma_fence *fence,
			    bool intr, signed long timeout);
			    bool intr, signed long timeout);