mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-09 23:34:42 +08:00
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: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200508092933.738-2-chris@chris-wilson.co.uk
This commit is contained in:
parent
2045d666ae
commit
ac938052e5
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user