[PATCH 03/57] drm/i915/gt: Pull all execlists scheduler initialisation together

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Fri Feb 5 16:12:10 UTC 2021


On 05/02/2021 01:18, Chris Wilson wrote:
> Put all the scheduler initialisation code for execlists into a common
> routine. This is to reduce code movement later.
> 
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
>   .../drm/i915/gt/intel_execlists_submission.c  | 26 ++++++++++++-------
>   1 file changed, 16 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
> index 9d24d91f5ae7..3a01b66939a0 100644
> --- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
> +++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
> @@ -2917,7 +2917,7 @@ static void rcs_submission_override(struct intel_engine_cs *engine)
>   	}
>   }
>   
> -int intel_execlists_submission_setup(struct intel_engine_cs *engine)
> +static void init_execlists(struct intel_engine_cs *engine)
>   {
>   	struct intel_engine_execlists * const execlists = &engine->execlists;
>   	struct drm_i915_private *i915 = engine->i915;
> @@ -2925,17 +2925,10 @@ int intel_execlists_submission_setup(struct intel_engine_cs *engine)
>   	u32 base = engine->mmio_base;
>   
>   	tasklet_setup(&engine->execlists.tasklet, execlists_submission_tasklet);
> +
>   	timer_setup(&engine->execlists.timer, execlists_timeslice, 0);
>   	timer_setup(&engine->execlists.preempt, execlists_preempt, 0);
>   
> -	logical_ring_default_vfuncs(engine);
> -	logical_ring_default_irqs(engine);
> -
> -	if (engine->class == RENDER_CLASS)
> -		rcs_submission_override(engine);
> -
> -	lrc_init_wa_ctx(engine);
> -
>   	if (HAS_LOGICAL_RING_ELSQ(i915)) {
>   		execlists->submit_reg = uncore->regs +
>   			i915_mmio_reg_offset(RING_EXECLIST_SQ_CONTENTS(base));
> @@ -2958,10 +2951,23 @@ int intel_execlists_submission_setup(struct intel_engine_cs *engine)
>   		execlists->csb_size = GEN11_CSB_ENTRIES;
>   
>   	engine->context_tag = GENMASK(BITS_PER_LONG - 2, 0);
> -	if (INTEL_GEN(engine->i915) >= 11) {
> +	if (INTEL_GEN(i915) >= 11) {
>   		execlists->ccid |= engine->instance << (GEN11_ENGINE_INSTANCE_SHIFT - 32);
>   		execlists->ccid |= engine->class << (GEN11_ENGINE_CLASS_SHIFT - 32);
>   	}
> +}
> +
> +int intel_execlists_submission_setup(struct intel_engine_cs *engine)
> +{
> +	logical_ring_default_vfuncs(engine);
> +	logical_ring_default_irqs(engine);
> +
> +	if (engine->class == RENDER_CLASS)
> +		rcs_submission_override(engine);
> +
> +	init_execlists(engine);
> +
> +	lrc_init_wa_ctx(engine);
>   
>   	/* Finally, take ownership and responsibility for cleanup! */
>   	engine->sanitize = execlists_sanitize;
> 

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

Regards,

Tvrtko


More information about the Intel-gfx-trybot mailing list