Re: [PATCH v4 1/2] drm/xe/mcr: Take vcs1/vecs1 into account for first media slice

Matt Roper <[email protected]> Thu, 30 Jul 2026 15:30:15 -0700
Newsgroups org.freedesktop.lists.intel-xe
Message-ID <[email protected]>
On Wed, Jul 29, 2026 at 04:06:44PM -0700, Ashutosh Dixit wrote:
> vcs1 and vecs1 may also be present on the first media slice, so take
> vcs1/vecs1 also into account when determining if the first media slice is
> absent.
> 
> Bspec: 67103, 77977
> 
> Cc: Gustavo Sousa <[email protected]>
> Cc: Matt Roper <[email protected]>
> Signed-off-by: Ashutosh Dixit <[email protected]>

Reviewed-by: Matt Roper <[email protected]>

> ---
> v2: Bug fix
> v3: Fix for BMG (Matt Roper)
> v4: Add TODO (Matt Roper)
> ---
>  drivers/gpu/drm/xe/xe_gt_mcr.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_gt_mcr.c b/drivers/gpu/drm/xe/xe_gt_mcr.c
> index a97b236dab7c9..1949bf7d370ac 100644
> --- a/drivers/gpu/drm/xe/xe_gt_mcr.c
> +++ b/drivers/gpu/drm/xe/xe_gt_mcr.c
> @@ -443,11 +443,16 @@ static void init_steering_dss(struct xe_gt *gt)
>  
>  static void init_steering_oaddrm(struct xe_gt *gt)
>  {
> +	u64 hwe_mask = XE_HW_ENGINE_VCS0 | XE_HW_ENGINE_VECS0;
> +
> +	/* TODO: Add 'VD per SCMI' and 'VE per SCMI' values into 'struct xe_media_desc' */
> +	if (MEDIA_VERx100(gt_to_xe(gt)) >= 3500)
> +		hwe_mask |= XE_HW_ENGINE_VCS1 | XE_HW_ENGINE_VECS1;
>  	/*
>  	 * First instance is only terminated if the entire first media slice
> -	 * is absent (i.e., no VCS0 or VECS0).
> +	 * is absent (i.e., no engines in hwe_mask).
>  	 */
> -	if (gt->info.engine_mask & (XE_HW_ENGINE_VCS0 | XE_HW_ENGINE_VECS0))
> +	if (gt->info.engine_mask & hwe_mask)
>  		gt->steering[OADDRM].group_target = 0;
>  	else
>  		gt->steering[OADDRM].group_target = 1;
> -- 
> 2.54.0
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation