mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	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: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20210708154835.528166-12-jason@jlekstrand.net
This commit is contained in:
		
							parent
							
								
									dd4f1bbae8
								
							
						
					
					
						commit
						5ac545b8b0
					
				
					 3 changed files with 9 additions and 40 deletions
				
			
		| 
						 | 
					@ -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 @@
 | 
				
			||||||
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)
 | 
				
			||||||
	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)
 | 
				
			||||||
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,
 | 
				
			||||||
	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,
 | 
				
			||||||
		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,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		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)
 | 
				
			||||||
							&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,
 | 
				
			||||||
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);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue