[PATCH v2 1/2] drm/xe: fix WA 14018094691

Matt Roper matthew.d.roper at intel.com
Wed Aug 7 23:56:33 UTC 2024


On Wed, Aug 07, 2024 at 04:53:32PM -0700, Daniele Ceraolo Spurio wrote:
> This WA is applied while initializing the media GT, but it a primary
> GT WA (because it modifies a register on the primary GT), so the XE_WA
> macro is returning false even when the WA should be applied.
> Fix this by using the primary GT in the macro.
> 
> Note that this WA only applies to PXP and we don't yet support that in
> Xe, so there are no negative effects to this bug, which is why we didn't
> see any errors in testing.
> 
> v2: use the primary GT in the macro instead of marking the WA as
> platform-wide (Lucas, Matt).
> 
> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
> Cc: Matt Roper <matthew.d.roper at intel.com>
> Cc: Lucas De Marchi <lucas.demarchi at intel.com>

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

> ---
>  drivers/gpu/drm/xe/xe_gsc.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_gsc.c b/drivers/gpu/drm/xe/xe_gsc.c
> index f8239a13fa2b..77ce44e845c5 100644
> --- a/drivers/gpu/drm/xe/xe_gsc.c
> +++ b/drivers/gpu/drm/xe/xe_gsc.c
> @@ -260,7 +260,7 @@ static int gsc_upload_and_init(struct xe_gsc *gsc)
>  	struct xe_tile *tile = gt_to_tile(gt);
>  	int ret;
>  
> -	if (XE_WA(gt, 14018094691)) {
> +	if (XE_WA(tile->primary_gt, 14018094691)) {
>  		ret = xe_force_wake_get(gt_to_fw(tile->primary_gt), XE_FORCEWAKE_ALL);
>  
>  		/*
> @@ -278,7 +278,7 @@ static int gsc_upload_and_init(struct xe_gsc *gsc)
>  
>  	ret = gsc_upload(gsc);
>  
> -	if (XE_WA(gt, 14018094691))
> +	if (XE_WA(tile->primary_gt, 14018094691))
>  		xe_force_wake_put(gt_to_fw(tile->primary_gt), XE_FORCEWAKE_ALL);
>  
>  	if (ret)
> -- 
> 2.43.0
> 

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


More information about the Intel-xe mailing list