[Intel-xe] [PATCH v4 20/21] drm/xe/rtp: Also check gt type

Matt Roper matthew.d.roper at intel.com
Thu May 25 23:34:19 UTC 2023


On Thu, May 25, 2023 at 02:34:06PM -0700, Lucas De Marchi wrote:
> When running rules on MTL and beyond that have media as a standalone GT,
> the rule should only match if the gt passed as parameter match the
> version/range/stepping that the rule is checking. This allows
> workarounds affecting only the media GT to be applied only on that GT
> and vice-versa.
> 
> For platforms before MTL, the GT will not be of media type, even if it
> includes media engines. Make sure to cover that case by checking if the
> platforma has standalone media.
> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>
> ---
>  drivers/gpu/drm/xe/xe_rtp.c | 23 +++++++++++++++++------
>  1 file changed, 17 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_rtp.c b/drivers/gpu/drm/xe/xe_rtp.c
> index ebcfb04c391a..43a86358efb6 100644
> --- a/drivers/gpu/drm/xe/xe_rtp.c
> +++ b/drivers/gpu/drm/xe/xe_rtp.c
> @@ -23,6 +23,11 @@
>   * the values to the registers that have matching rules.
>   */
>  
> +static bool has_samedia(const struct xe_device *xe)
> +{
> +	return xe->info.media_verx100 >= 1300;

This could also be

        return MEDIA_VER(xe) > 13;

to reduce the number of places in the code that need to be changed if we
shuffle around the internal structures in the future.

Up to you whether you want to change it.

Reviewed-by: Matt Roper <matthew.d.roper at intel.com>

> +}
> +
>  static bool rule_matches(const struct xe_device *xe,
>  			 struct xe_gt *gt,
>  			 struct xe_hw_engine *hwe,
> @@ -43,26 +48,32 @@ static bool rule_matches(const struct xe_device *xe,
>  				xe->info.subplatform == r->subplatform;
>  			break;
>  		case XE_RTP_MATCH_GRAPHICS_VERSION:
> -			match = xe->info.graphics_verx100 == r->ver_start;
> +			match = xe->info.graphics_verx100 == r->ver_start &&
> +				(!has_samedia(xe) || !xe_gt_is_media_type(gt));
>  			break;
>  		case XE_RTP_MATCH_GRAPHICS_VERSION_RANGE:
>  			match = xe->info.graphics_verx100 >= r->ver_start &&
> -				xe->info.graphics_verx100 <= r->ver_end;
> +				xe->info.graphics_verx100 <= r->ver_end &&
> +				(!has_samedia(xe) || !xe_gt_is_media_type(gt));
>  			break;
>  		case XE_RTP_MATCH_GRAPHICS_STEP:
>  			match = xe->info.step.graphics >= r->step_start &&
> -				xe->info.step.graphics < r->step_end;
> +				xe->info.step.graphics < r->step_end &&
> +				(!has_samedia(xe) || !xe_gt_is_media_type(gt));
>  			break;
>  		case XE_RTP_MATCH_MEDIA_VERSION:
> -			match = xe->info.media_verx100 == r->ver_start;
> +			match = xe->info.media_verx100 == r->ver_start &&
> +				(!has_samedia(xe) || xe_gt_is_media_type(gt));
>  			break;
>  		case XE_RTP_MATCH_MEDIA_VERSION_RANGE:
>  			match = xe->info.media_verx100 >= r->ver_start &&
> -				xe->info.media_verx100 <= r->ver_end;
> +				xe->info.media_verx100 <= r->ver_end &&
> +				(!has_samedia(xe) || xe_gt_is_media_type(gt));
>  			break;
>  		case XE_RTP_MATCH_MEDIA_STEP:
>  			match = xe->info.step.media >= r->step_start &&
> -				xe->info.step.media < r->step_end;
> +				xe->info.step.media < r->step_end &&
> +				(!has_samedia(xe) || xe_gt_is_media_type(gt));
>  			break;
>  		case XE_RTP_MATCH_INTEGRATED:
>  			match = !xe->info.is_dgfx;
> -- 
> 2.40.1
> 

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


More information about the Intel-xe mailing list