[PATCH 1/2] drm/xe/lnl: Enable more GuC based workarounds

Belgaumkar, Vinay vinay.belgaumkar at intel.com
Fri Apr 12 22:04:38 UTC 2024


On 4/9/2024 5:26 PM, John.C.Harrison at Intel.com wrote:
> From: John Harrison <John.C.Harrison at Intel.com>
>
> There are a couple of new workarounds for LNL that are implemented in
> the GuC firmware. The KMD needs to enable them explicitly.

Seems like this affects gen12hp as well, will need a separate i915 patch 
for it? For Xe, this is-

Reviewed-by: Vinay Belgaumkar <vinay.belgaumkar at intel.com>

>
> Signed-off-by: John Harrison <John.C.Harrison at Intel.com>
> ---
>   drivers/gpu/drm/xe/abi/guc_klvs_abi.h | 2 ++
>   drivers/gpu/drm/xe/xe_guc_ads.c       | 8 ++++++++
>   drivers/gpu/drm/xe/xe_wa_oob.rules    | 3 +++
>   3 files changed, 13 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/abi/guc_klvs_abi.h b/drivers/gpu/drm/xe/abi/guc_klvs_abi.h
> index 5dd45e06f0b6..0972113f6b81 100644
> --- a/drivers/gpu/drm/xe/abi/guc_klvs_abi.h
> +++ b/drivers/gpu/drm/xe/abi/guc_klvs_abi.h
> @@ -324,6 +324,8 @@ enum  {
>    */
>   enum xe_guc_klv_ids {
>   	GUC_WORKAROUND_KLV_BLOCK_INTERRUPTS_WHEN_MGSR_BLOCKED				= 0x9002,
> +	GUC_WORKAROUND_KLV_ID_GAM_PFQ_SHADOW_TAIL_POLLING				= 0x9005,
> +	GUC_WORKAROUND_KLV_ID_DISABLE_MTP_DURING_ASYNC_COMPUTE				= 0x9007,
>   };
>   
>   #endif
> diff --git a/drivers/gpu/drm/xe/xe_guc_ads.c b/drivers/gpu/drm/xe/xe_guc_ads.c
> index 757cbbb87869..678ece366056 100644
> --- a/drivers/gpu/drm/xe/xe_guc_ads.c
> +++ b/drivers/gpu/drm/xe/xe_guc_ads.c
> @@ -318,6 +318,14 @@ static void guc_waklv_init(struct xe_guc_ads *ads)
>   		guc_waklv_enable_simple(ads,
>   					GUC_WORKAROUND_KLV_BLOCK_INTERRUPTS_WHEN_MGSR_BLOCKED,
>   					&offset, &remain);
> +	if (XE_WA(gt, 18024947630))
> +		guc_waklv_enable_simple(ads,
> +					GUC_WORKAROUND_KLV_ID_GAM_PFQ_SHADOW_TAIL_POLLING,
> +					&offset, &remain);
> +	if (XE_WA(gt, 16022287689))
> +		guc_waklv_enable_simple(ads,
> +					GUC_WORKAROUND_KLV_ID_DISABLE_MTP_DURING_ASYNC_COMPUTE,
> +					&offset, &remain);
>   
>   	size = guc_ads_waklv_size(ads) - remain;
>   	if (!size)
> diff --git a/drivers/gpu/drm/xe/xe_wa_oob.rules b/drivers/gpu/drm/xe/xe_wa_oob.rules
> index 98a81468bc8e..5759b7bc1b70 100644
> --- a/drivers/gpu/drm/xe/xe_wa_oob.rules
> +++ b/drivers/gpu/drm/xe/xe_wa_oob.rules
> @@ -21,3 +21,6 @@
>   		PLATFORM(DG2)
>   14018094691	GRAPHICS_VERSION(2004)
>   14019882105	GRAPHICS_VERSION(2004), GRAPHICS_STEP(A0, B0)
> +18024947630	GRAPHICS_VERSION(2004)
> +		MEDIA_VERSION(2000)
> +16022287689	GRAPHICS_VERSION(2004)


More information about the Intel-xe mailing list