[Intel-gfx] [PATCH 07/16] drm/i915: Move intel_lrc_context_pin() to avoid the forward declaration

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Thu Dec 8 17:45:23 UTC 2016


On 07/12/2016 13:58, Chris Wilson wrote:
> Just a simple move to avoid a forward declaration.

Patch subject is wrong - you are moving 
intel_logical_ring_alloc_request_extras.

> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
>  drivers/gpu/drm/i915/intel_lrc.c | 132 +++++++++++++++++++--------------------
>  1 file changed, 65 insertions(+), 67 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
> index 8b412880e88c..5cabe4e9d22f 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -230,8 +230,6 @@ enum {
>
>  static int execlists_context_deferred_alloc(struct i915_gem_context *ctx,
>  					    struct intel_engine_cs *engine);
> -static int intel_lr_context_pin(struct i915_gem_context *ctx,
> -				struct intel_engine_cs *engine);
>  static void execlists_init_reg_state(u32 *reg_state,
>  				     struct i915_gem_context *ctx,
>  				     struct intel_engine_cs *engine,
> @@ -774,71 +772,6 @@ static void execlists_schedule(struct drm_i915_gem_request *request, int prio)
>  	/* XXX Do we need to preempt to make room for us and our deps? */
>  }
>
> -int intel_logical_ring_alloc_request_extras(struct drm_i915_gem_request *request)
> -{
> -	struct intel_engine_cs *engine = request->engine;
> -	struct intel_context *ce = &request->ctx->engine[engine->id];
> -	int ret;
> -
> -	/* Flush enough space to reduce the likelihood of waiting after
> -	 * we start building the request - in which case we will just
> -	 * have to repeat work.
> -	 */
> -	request->reserved_space += EXECLISTS_REQUEST_SIZE;
> -
> -	if (!ce->state) {
> -		ret = execlists_context_deferred_alloc(request->ctx, engine);
> -		if (ret)
> -			return ret;
> -	}
> -
> -	request->ring = ce->ring;
> -
> -	ret = intel_lr_context_pin(request->ctx, engine);
> -	if (ret)
> -		return ret;
> -
> -	if (i915.enable_guc_submission) {
> -		/*
> -		 * Check that the GuC has space for the request before
> -		 * going any further, as the i915_add_request() call
> -		 * later on mustn't fail ...
> -		 */
> -		ret = i915_guc_wq_reserve(request);
> -		if (ret)
> -			goto err_unpin;
> -	}
> -
> -	ret = intel_ring_begin(request, 0);
> -	if (ret)
> -		goto err_unreserve;
> -
> -	if (!ce->initialised) {
> -		ret = engine->init_context(request);
> -		if (ret)
> -			goto err_unreserve;
> -
> -		ce->initialised = true;
> -	}
> -
> -	/* Note that after this point, we have committed to using
> -	 * this request as it is being used to both track the
> -	 * state of engine initialisation and liveness of the
> -	 * golden renderstate above. Think twice before you try
> -	 * to cancel/unwind this request now.
> -	 */
> -
> -	request->reserved_space -= EXECLISTS_REQUEST_SIZE;
> -	return 0;
> -
> -err_unreserve:
> -	if (i915.enable_guc_submission)
> -		i915_guc_wq_unreserve(request);
> -err_unpin:
> -	intel_lr_context_unpin(request->ctx, engine);
> -	return ret;
> -}
> -
>  static int intel_lr_context_pin(struct i915_gem_context *ctx,
>  				struct intel_engine_cs *engine)
>  {
> @@ -911,6 +844,71 @@ void intel_lr_context_unpin(struct i915_gem_context *ctx,
>  	i915_gem_context_put(ctx);
>  }
>
> +int intel_logical_ring_alloc_request_extras(struct drm_i915_gem_request *request)
> +{
> +	struct intel_engine_cs *engine = request->engine;
> +	struct intel_context *ce = &request->ctx->engine[engine->id];
> +	int ret;
> +
> +	/* Flush enough space to reduce the likelihood of waiting after
> +	 * we start building the request - in which case we will just
> +	 * have to repeat work.
> +	 */
> +	request->reserved_space += EXECLISTS_REQUEST_SIZE;
> +
> +	if (!ce->state) {
> +		ret = execlists_context_deferred_alloc(request->ctx, engine);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	request->ring = ce->ring;
> +
> +	ret = intel_lr_context_pin(request->ctx, engine);
> +	if (ret)
> +		return ret;
> +
> +	if (i915.enable_guc_submission) {
> +		/*
> +		 * Check that the GuC has space for the request before
> +		 * going any further, as the i915_add_request() call
> +		 * later on mustn't fail ...
> +		 */
> +		ret = i915_guc_wq_reserve(request);
> +		if (ret)
> +			goto err_unpin;
> +	}
> +
> +	ret = intel_ring_begin(request, 0);
> +	if (ret)
> +		goto err_unreserve;
> +
> +	if (!ce->initialised) {
> +		ret = engine->init_context(request);
> +		if (ret)
> +			goto err_unreserve;
> +
> +		ce->initialised = true;
> +	}
> +
> +	/* Note that after this point, we have committed to using
> +	 * this request as it is being used to both track the
> +	 * state of engine initialisation and liveness of the
> +	 * golden renderstate above. Think twice before you try
> +	 * to cancel/unwind this request now.
> +	 */
> +
> +	request->reserved_space -= EXECLISTS_REQUEST_SIZE;
> +	return 0;
> +
> +err_unreserve:
> +	if (i915.enable_guc_submission)
> +		i915_guc_wq_unreserve(request);
> +err_unpin:
> +	intel_lr_context_unpin(request->ctx, engine);
> +	return ret;
> +}
> +
>  static int intel_logical_ring_workarounds_emit(struct drm_i915_gem_request *req)
>  {
>  	int ret, i;
>

Poor man's split view shows proper use of cut and paste. With the 
subject fixed:

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>

Regards,

Tvrtko



More information about the Intel-gfx mailing list