Commit 5ac545b8 authored by Jason Ekstrand's avatar Jason Ekstrand Committed by Daniel Vetter

drm/i915/request: Remove the hook from await_execution

This was only ever used for FENCE_SUBMIT automatic engine selection
which was removed in the previous commit.
Signed-off-by: default avatarJason Ekstrand <jason@jlekstrand.net>
Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20210708154835.528166-12-jason@jlekstrand.net
parent dd4f1bba
...@@ -3483,8 +3483,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, ...@@ -3483,8 +3483,7 @@ i915_gem_do_execbuffer(struct drm_device *dev,
if (in_fence) { if (in_fence) {
if (args->flags & I915_EXEC_FENCE_SUBMIT) if (args->flags & I915_EXEC_FENCE_SUBMIT)
err = i915_request_await_execution(eb.request, err = i915_request_await_execution(eb.request,
in_fence, in_fence);
NULL);
else else
err = i915_request_await_dma_fence(eb.request, err = i915_request_await_dma_fence(eb.request,
in_fence); in_fence);
......
...@@ -49,7 +49,6 @@ ...@@ -49,7 +49,6 @@
struct execute_cb { struct execute_cb {
struct irq_work work; struct irq_work work;
struct i915_sw_fence *fence; struct i915_sw_fence *fence;
void (*hook)(struct i915_request *rq, struct dma_fence *signal);
struct i915_request *signal; struct i915_request *signal;
}; };
...@@ -180,17 +179,6 @@ static void irq_execute_cb(struct irq_work *wrk) ...@@ -180,17 +179,6 @@ static void irq_execute_cb(struct irq_work *wrk)
kmem_cache_free(global.slab_execute_cbs, cb); kmem_cache_free(global.slab_execute_cbs, cb);
} }
static void irq_execute_cb_hook(struct irq_work *wrk)
{
struct execute_cb *cb = container_of(wrk, typeof(*cb), work);
cb->hook(container_of(cb->fence, struct i915_request, submit),
&cb->signal->fence);
i915_request_put(cb->signal);
irq_execute_cb(wrk);
}
static __always_inline void static __always_inline void
__notify_execute_cb(struct i915_request *rq, bool (*fn)(struct irq_work *wrk)) __notify_execute_cb(struct i915_request *rq, bool (*fn)(struct irq_work *wrk))
{ {
...@@ -517,17 +505,12 @@ static bool __request_in_flight(const struct i915_request *signal) ...@@ -517,17 +505,12 @@ static bool __request_in_flight(const struct i915_request *signal)
static int static int
__await_execution(struct i915_request *rq, __await_execution(struct i915_request *rq,
struct i915_request *signal, struct i915_request *signal,
void (*hook)(struct i915_request *rq,
struct dma_fence *signal),
gfp_t gfp) gfp_t gfp)
{ {
struct execute_cb *cb; struct execute_cb *cb;
if (i915_request_is_active(signal)) { if (i915_request_is_active(signal))
if (hook)
hook(rq, &signal->fence);
return 0; return 0;
}
cb = kmem_cache_alloc(global.slab_execute_cbs, gfp); cb = kmem_cache_alloc(global.slab_execute_cbs, gfp);
if (!cb) if (!cb)
...@@ -537,12 +520,6 @@ __await_execution(struct i915_request *rq, ...@@ -537,12 +520,6 @@ __await_execution(struct i915_request *rq,
i915_sw_fence_await(cb->fence); i915_sw_fence_await(cb->fence);
init_irq_work(&cb->work, irq_execute_cb); init_irq_work(&cb->work, irq_execute_cb);
if (hook) {
cb->hook = hook;
cb->signal = i915_request_get(signal);
cb->work.func = irq_execute_cb_hook;
}
/* /*
* Register the callback first, then see if the signaler is already * Register the callback first, then see if the signaler is already
* active. This ensures that if we race with the * active. This ensures that if we race with the
...@@ -1253,7 +1230,7 @@ emit_semaphore_wait(struct i915_request *to, ...@@ -1253,7 +1230,7 @@ emit_semaphore_wait(struct i915_request *to,
goto await_fence; goto await_fence;
/* Only submit our spinner after the signaler is running! */ /* Only submit our spinner after the signaler is running! */
if (__await_execution(to, from, NULL, gfp)) if (__await_execution(to, from, gfp))
goto await_fence; goto await_fence;
if (__emit_semaphore_wait(to, from, from->fence.seqno)) if (__emit_semaphore_wait(to, from, from->fence.seqno))
...@@ -1284,16 +1261,14 @@ static int intel_timeline_sync_set_start(struct intel_timeline *tl, ...@@ -1284,16 +1261,14 @@ static int intel_timeline_sync_set_start(struct intel_timeline *tl,
static int static int
__i915_request_await_execution(struct i915_request *to, __i915_request_await_execution(struct i915_request *to,
struct i915_request *from, struct i915_request *from)
void (*hook)(struct i915_request *rq,
struct dma_fence *signal))
{ {
int err; int err;
GEM_BUG_ON(intel_context_is_barrier(from->context)); GEM_BUG_ON(intel_context_is_barrier(from->context));
/* Submit both requests at the same time */ /* Submit both requests at the same time */
err = __await_execution(to, from, hook, I915_FENCE_GFP); err = __await_execution(to, from, I915_FENCE_GFP);
if (err) if (err)
return err; return err;
...@@ -1406,9 +1381,7 @@ i915_request_await_external(struct i915_request *rq, struct dma_fence *fence) ...@@ -1406,9 +1381,7 @@ i915_request_await_external(struct i915_request *rq, struct dma_fence *fence)
int int
i915_request_await_execution(struct i915_request *rq, i915_request_await_execution(struct i915_request *rq,
struct dma_fence *fence, struct dma_fence *fence)
void (*hook)(struct i915_request *rq,
struct dma_fence *signal))
{ {
struct dma_fence **child = &fence; struct dma_fence **child = &fence;
unsigned int nchild = 1; unsigned int nchild = 1;
...@@ -1441,8 +1414,7 @@ i915_request_await_execution(struct i915_request *rq, ...@@ -1441,8 +1414,7 @@ i915_request_await_execution(struct i915_request *rq,
if (dma_fence_is_i915(fence)) if (dma_fence_is_i915(fence))
ret = __i915_request_await_execution(rq, ret = __i915_request_await_execution(rq,
to_request(fence), to_request(fence));
hook);
else else
ret = i915_request_await_external(rq, fence); ret = i915_request_await_external(rq, fence);
if (ret < 0) if (ret < 0)
...@@ -1468,7 +1440,7 @@ await_request_submit(struct i915_request *to, struct i915_request *from) ...@@ -1468,7 +1440,7 @@ await_request_submit(struct i915_request *to, struct i915_request *from)
&from->submit, &from->submit,
I915_FENCE_GFP); I915_FENCE_GFP);
else else
return __i915_request_await_execution(to, from, NULL); return __i915_request_await_execution(to, from);
} }
static int static int
......
...@@ -352,9 +352,7 @@ int i915_request_await_object(struct i915_request *to, ...@@ -352,9 +352,7 @@ int i915_request_await_object(struct i915_request *to,
int i915_request_await_dma_fence(struct i915_request *rq, int i915_request_await_dma_fence(struct i915_request *rq,
struct dma_fence *fence); struct dma_fence *fence);
int i915_request_await_execution(struct i915_request *rq, int i915_request_await_execution(struct i915_request *rq,
struct dma_fence *fence, struct dma_fence *fence);
void (*hook)(struct i915_request *rq,
struct dma_fence *signal));
void i915_request_add(struct i915_request *rq); void i915_request_add(struct i915_request *rq);
......
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