Commit ac938052 authored by Chris Wilson's avatar Chris Wilson

drm/i915: Pull waiting on an external dma-fence into its routine

As a means for a small code consolidation, but primarily to start
thinking more carefully about internal-vs-external linkage, pull the
pair of i915_sw_fence_await_dma_fence() calls into a common routine.
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200508092933.738-2-chris@chris-wilson.co.uk
parent 2045d666
......@@ -1067,6 +1067,14 @@ i915_request_await_request(struct i915_request *to, struct i915_request *from)
return 0;
}
static int
i915_request_await_external(struct i915_request *rq, struct dma_fence *fence)
{
return i915_sw_fence_await_dma_fence(&rq->submit, fence,
fence->context ? I915_FENCE_TIMEOUT : 0,
I915_FENCE_GFP);
}
int
i915_request_await_dma_fence(struct i915_request *rq, struct dma_fence *fence)
{
......@@ -1114,9 +1122,7 @@ i915_request_await_dma_fence(struct i915_request *rq, struct dma_fence *fence)
if (dma_fence_is_i915(fence))
ret = i915_request_await_request(rq, to_request(fence));
else
ret = i915_sw_fence_await_dma_fence(&rq->submit, fence,
fence->context ? I915_FENCE_TIMEOUT : 0,
I915_FENCE_GFP);
ret = i915_request_await_external(rq, fence);
if (ret < 0)
return ret;
......@@ -1255,9 +1261,7 @@ i915_request_await_execution(struct i915_request *rq,
to_request(fence),
hook);
else
ret = i915_sw_fence_await_dma_fence(&rq->submit, fence,
I915_FENCE_TIMEOUT,
GFP_KERNEL);
ret = i915_request_await_external(rq, fence);
if (ret < 0)
return ret;
} while (--nchild);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment