[PATCH] drm/xe/ptl: Apply Wa_14022866841

Matt Roper matthew.d.roper at intel.com
Wed Oct 16 00:00:30 UTC 2024


On Tue, Oct 15, 2024 at 04:44:28PM -0700, Vinay Belgaumkar wrote:
> As part of this WA, GuC will hold a forcewake for certain
> MMIO accesses outside the GT/media domains.
> 
> Cc: Matt Roper <matthew.d.roper at intel.com>
> Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar at intel.com>

Since we're not using doorbell submissions, activating the GuC
workaround should be all we need to do.  The KLV matches what's given in
the GuC spec, so

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


> ---
>  drivers/gpu/drm/xe/abi/guc_klvs_abi.h | 1 +
>  drivers/gpu/drm/xe/xe_guc_ads.c       | 5 +++++
>  drivers/gpu/drm/xe/xe_wa_oob.rules    | 2 ++
>  3 files changed, 8 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/abi/guc_klvs_abi.h b/drivers/gpu/drm/xe/abi/guc_klvs_abi.h
> index 6b30743a2f6c..37606cf8cc5e 100644
> --- a/drivers/gpu/drm/xe/abi/guc_klvs_abi.h
> +++ b/drivers/gpu/drm/xe/abi/guc_klvs_abi.h
> @@ -352,6 +352,7 @@ enum xe_guc_klv_ids {
>  	GUC_WORKAROUND_KLV_ID_DISABLE_MTP_DURING_ASYNC_COMPUTE				= 0x9007,
>  	GUC_WA_KLV_NP_RD_WRITE_TO_CLEAR_RCSM_AT_CGP_LATE_RESTORE			= 0x9008,
>  	GUC_WORKAROUND_KLV_ID_BACK_TO_BACK_RCS_ENGINE_RESET				= 0x9009,
> +	GUC_WA_KLV_WAKE_POWER_DOMAINS_FOR_OUTBOUND_MMIO					= 0x900a,
>  };
>  
>  #endif
> diff --git a/drivers/gpu/drm/xe/xe_guc_ads.c b/drivers/gpu/drm/xe/xe_guc_ads.c
> index 25292997c7f3..4e746ae98888 100644
> --- a/drivers/gpu/drm/xe/xe_guc_ads.c
> +++ b/drivers/gpu/drm/xe/xe_guc_ads.c
> @@ -359,6 +359,11 @@ static void guc_waklv_init(struct xe_guc_ads *ads)
>  					GUC_WORKAROUND_KLV_ID_DISABLE_MTP_DURING_ASYNC_COMPUTE,
>  					&offset, &remain);
>  
> +	if (XE_WA(gt, 14022866841))
> +		guc_waklv_enable_simple(ads,
> +					GUC_WA_KLV_WAKE_POWER_DOMAINS_FOR_OUTBOUND_MMIO,
> +					&offset, &remain);
> +
>  	/*
>  	 * On RC6 exit, GuC will write register 0xB04 with the default value provided. As of now,
>  	 * the default value for this register is determined to be 0xC40. This could change in the
> diff --git a/drivers/gpu/drm/xe/xe_wa_oob.rules b/drivers/gpu/drm/xe/xe_wa_oob.rules
> index 264d6e116499..bcd04464b85e 100644
> --- a/drivers/gpu/drm/xe/xe_wa_oob.rules
> +++ b/drivers/gpu/drm/xe/xe_wa_oob.rules
> @@ -39,3 +39,5 @@
>  14019789679	GRAPHICS_VERSION(1255)
>  		GRAPHICS_VERSION_RANGE(1270, 2004)
>  no_media_l3	MEDIA_VERSION(3000)
> +14022866841	GRAPHICS_VERSION(3000), GRAPHICS_STEP(A0, B0)
> +		MEDIA_VERSION(3000), MEDIA_STEP(A0, B0)
> -- 
> 2.38.1
> 

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


More information about the Intel-xe mailing list