dma-fence: Make ->wait callback optional
Almost everyone uses dma_fence_default_wait. Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel 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
This commit is contained in:
parent
90e9965524
commit
49a53d493e
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
ret = fence->ops->wait(fence, intr, timeout);
|
if (fence->ops->wait)
|
||||||
|
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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue