[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