[Intel-gfx] [PATCH 3/7] drm/i915: Move engine-related mmio init to engines_init_mmio
Chris Wilson
chris at chris-wilson.co.uk
Fri Jun 26 14:51:14 UTC 2020
Quoting Daniele Ceraolo Spurio (2020-06-26 15:46:53)
>
>
> On 6/26/20 7:38 AM, Chris Wilson wrote:
> > Quoting Daniele Ceraolo Spurio (2020-06-26 00:42:08)
> >> All the info we read in intel_device_info_init_mmio are engine-related
> >> and since we already have an engine_init_mmio function we can just
> >> perform the operations from there.
> >>
> >> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
> >> Cc: Tvrtko Ursulin <tvrtko.ursulin at linux.intel.com>
> >> Cc: Andi Shyti <andi.shyti at intel.com>
> >> ---
> >> drivers/gpu/drm/i915/gt/intel_engine_cs.c | 72 ++++++++++++++++++++++-
> >> drivers/gpu/drm/i915/i915_drv.c | 4 --
> >> drivers/gpu/drm/i915/intel_device_info.c | 66 ---------------------
> >> drivers/gpu/drm/i915/intel_device_info.h | 2 -
> >> 4 files changed, 71 insertions(+), 73 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> >> index be92d1ef9aa9..8497106eb3a6 100644
> >> --- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> >> +++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> >> @@ -450,6 +450,74 @@ void intel_engines_free(struct intel_gt *gt)
> >> }
> >> }
> >>
> >> +/*
> >> + * Determine which engines are fused off in our particular hardware. Since the
> >> + * fuse register is in the blitter powerwell, we need forcewake to be ready at
> >> + * this point (but later we need to prune the forcewake domains for engines that
> >> + * are indeed fused off).
> >> + */
> >> +static intel_engine_mask_t init_engine_mask(struct intel_gt *gt)
> >> +{
> >> + struct drm_i915_private *i915 = gt->i915;
> >> + struct intel_device_info *info = mkwrite_device_info(i915);
> >> + struct intel_uncore *uncore = gt->uncore;
> >> + unsigned int logical_vdbox = 0;
> >> + unsigned int i;
> >> + u32 media_fuse;
> >> + u16 vdbox_mask;
> >> + u16 vebox_mask;
> >
> > assert_forcewakes_active(uncore, FORCEWAKE_BLITTER) ?
> >
> > Since it's called out in the comment, might as well reinforce that with
> > an assert.
>
> We don't expect it to be active, just to be initialized/usable.
> This comment is there to remind us of the catch-22 issue we have where
> we need forcewake to be initialized to read the fuses, but we need the
> fuses values to know which engines are available and therefore which fw
> domains are there (and that's why we prune the domains later).
Gotcha, I assumed 'ready' == 'powered up'
How about adding that explanation to the comment :)
-Chris
More information about the Intel-gfx
mailing list