[PATCH 1/5] drm/xe: Drop __engine_mask

Matthew Brost matthew.brost at intel.com
Mon Apr 29 20:36:04 UTC 2024


On Mon, Apr 29, 2024 at 04:29:34PM -0400, Rodrigo Vivi wrote:
> On Thu, Apr 25, 2024 at 11:24:06AM -0700, Lucas De Marchi wrote:
> > Not really used, it's just a copy of engine_mask, which already reads
> > the fuses to mark engines as available/not-available.
> 
> I got confused trying to understand why this ever existed.
> It indeed doesn't make much sense on today's code.
> 

That was my doing with the intent that we never use the engine mask
until after hwconfig load as the engine mask would be read from that. Or
alternatively in SRIOV via CTB (or MMIO) relays.

i.e. it was fake way to enforce correct load ordering.

Assuming fuses are read after this removed LoC, the load ordering is
correct.

Matt

> > 
> > While at it, use XE_HW_ENGINE_BCS_MASK to span all copy engines.
> > 
> > Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>
> 
> 
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
> 
> 
> > ---
> >  drivers/gpu/drm/xe/xe_gt.c       | 3 ---
> >  drivers/gpu/drm/xe/xe_gt_types.h | 6 ------
> >  drivers/gpu/drm/xe/xe_migrate.c  | 3 +--
> >  drivers/gpu/drm/xe/xe_pci.c      | 6 +++---
> >  4 files changed, 4 insertions(+), 14 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
> > index e922e77f5010..00a22cf2f5b5 100644
> > --- a/drivers/gpu/drm/xe/xe_gt.c
> > +++ b/drivers/gpu/drm/xe/xe_gt.c
> > @@ -515,9 +515,6 @@ int xe_gt_init_hwconfig(struct xe_gt *gt)
> >  	if (err)
> >  		goto out_fw;
> >  
> > -	/* XXX: Fake that we pull the engine mask from hwconfig blob */
> > -	gt->info.engine_mask = gt->info.__engine_mask;
> > -
> >  out_fw:
> >  	xe_force_wake_put(gt_to_fw(gt), XE_FW_GT);
> >  out:
> > diff --git a/drivers/gpu/drm/xe/xe_gt_types.h b/drivers/gpu/drm/xe/xe_gt_types.h
> > index cfdc761ff7f4..72568414fb7d 100644
> > --- a/drivers/gpu/drm/xe/xe_gt_types.h
> > +++ b/drivers/gpu/drm/xe/xe_gt_types.h
> > @@ -116,12 +116,6 @@ struct xe_gt {
> >  		u32 reference_clock;
> >  		/** @info.engine_mask: mask of engines present on GT */
> >  		u64 engine_mask;
> > -		/**
> > -		 * @info.__engine_mask: mask of engines present on GT read from
> > -		 * xe_pci.c, used to fake reading the engine_mask from the
> > -		 * hwconfig blob.
> > -		 */
> > -		u64 __engine_mask;
> >  		/** @info.gmdid: raw GMD_ID value from hardware */
> >  		u32 gmdid;
> >  	} info;
> > diff --git a/drivers/gpu/drm/xe/xe_migrate.c b/drivers/gpu/drm/xe/xe_migrate.c
> > index 9f6e9b7f11c8..59a3f24d31e6 100644
> > --- a/drivers/gpu/drm/xe/xe_migrate.c
> > +++ b/drivers/gpu/drm/xe/xe_migrate.c
> > @@ -936,8 +936,7 @@ static bool has_service_copy_support(struct xe_gt *gt)
> >  	 * all of the actual service copy engines (BCS1-BCS8) have been fused
> >  	 * off.
> >  	 */
> > -	return gt->info.__engine_mask & GENMASK(XE_HW_ENGINE_BCS8,
> > -						XE_HW_ENGINE_BCS1);
> > +	return gt->info.engine_mask & XE_HW_ENGINE_BCS_MASK;
> >  }
> >  
> >  static u32 emit_clear_cmd_len(struct xe_gt *gt)
> > diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> > index a0cf5dd803c2..6b2086ea24ab 100644
> > --- a/drivers/gpu/drm/xe/xe_pci.c
> > +++ b/drivers/gpu/drm/xe/xe_pci.c
> > @@ -656,9 +656,9 @@ static int xe_info_init(struct xe_device *xe,
> >  		gt = tile->primary_gt;
> >  		gt->info.id = xe->info.gt_count++;
> >  		gt->info.type = XE_GT_TYPE_MAIN;
> > -		gt->info.__engine_mask = graphics_desc->hw_engine_mask;
> > +		gt->info.engine_mask = graphics_desc->hw_engine_mask;
> >  		if (MEDIA_VER(xe) < 13 && media_desc)
> > -			gt->info.__engine_mask |= media_desc->hw_engine_mask;
> > +			gt->info.engine_mask |= media_desc->hw_engine_mask;
> >  
> >  		if (MEDIA_VER(xe) < 13 || !media_desc)
> >  			continue;
> > @@ -673,7 +673,7 @@ static int xe_info_init(struct xe_device *xe,
> >  
> >  		gt = tile->media_gt;
> >  		gt->info.type = XE_GT_TYPE_MEDIA;
> > -		gt->info.__engine_mask = media_desc->hw_engine_mask;
> > +		gt->info.engine_mask = media_desc->hw_engine_mask;
> >  		gt->mmio.adj_offset = MEDIA_GT_GSI_OFFSET;
> >  		gt->mmio.adj_limit = MEDIA_GT_GSI_LENGTH;
> >  
> > -- 
> > 2.43.0
> > 


More information about the Intel-xe mailing list