Alan Previn <[email protected]> writes:

> The WA is implemented by the GuC, so we just need to enable it via the
> dedicated KLV. It makes the GuC complete page reclaim requests that
> end in an error, instead of leaving them pending. It is only needed
> when the page reclaim HW assist is in use. This WA only applies to
> Nova Lake (graphics version 3510).

Since this is a workaround for the graphics IP, I think we should avoid
saying it is for Nova Lake.

Also, on the subject, I would prefer that we stick to the notation
Wa_14028250015.

>
> Assisted-by: LLM
> Signed-off-by: Alan Previn <[email protected]>
> ---
>  drivers/gpu/drm/xe/abi/guc_klvs_abi.h | 1 +
>  drivers/gpu/drm/xe/xe_guc_ads.c       | 6 ++++++
>  drivers/gpu/drm/xe/xe_wa_oob.rules    | 1 +
>  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 4bcdc1a96785..9357bb925f11 100644
> --- a/drivers/gpu/drm/xe/abi/guc_klvs_abi.h
> +++ b/drivers/gpu/drm/xe/abi/guc_klvs_abi.h
> @@ -526,6 +526,7 @@ enum xe_guc_klv_ids {
>       GUC_WA_KLV_REMAP_RANGED_TLB_INV                                         
>         = 0x900f,
>       GUC_WA_KLV_IGNORE_MMIO_READ_SEM_TOKEN_64                                
>         = 0x9010,
>       GUC_WA_KLV_IGNORE_MULTIQ_CTX_COMPLETE_WITH_PREEMPT_IN_CSB               
>         = 0x9011,
> +     GUC_WA_KLV_ENABLE_PAGE_RECLAIM_ERROR_COMPLETION                         
>         = 0x9012,

Probably better to use the same name as defined by GuC here?

>  };
>  
>  /**
> diff --git a/drivers/gpu/drm/xe/xe_guc_ads.c b/drivers/gpu/drm/xe/xe_guc_ads.c
> index 43a2951a66d6..7d7b44293a08 100644
> --- a/drivers/gpu/drm/xe/xe_guc_ads.c
> +++ b/drivers/gpu/drm/xe/xe_guc_ads.c
> @@ -389,6 +389,12 @@ static void guc_waklv_init(struct xe_guc_ads *ads)
>               guc_waklv_enable(ads, NULL, 0, &offset, &remain,
>                                
> GUC_WA_KLV_IGNORE_MULTIQ_CTX_COMPLETE_WITH_PREEMPT_IN_CSB);
>  
> +     /* On GuC 70.78 onwards, we enable GuC PRL-completion-IRQ workaround on 
> applicable GMIDs */
> +     if (XE_GT_WA(gt, 14028250015) && GUC_FIRMWARE_VER_AT_LEAST(&gt->uc.guc, 
> 70, 78) &&
> +         gt_to_xe(gt)->info.has_page_reclaim_hw_assist)

Should we really gate this by the has_page_reclaim_hw_assist feature
flag?  This flag can be changed at runtime via debugfs.  I would assume
that GuC would do the right thing if PRL is not supported on the IP it
is running.

--
Gustavo Sousa

> +             guc_waklv_enable(ads, NULL, 0, &offset, &remain,
> +                              
> GUC_WA_KLV_ENABLE_PAGE_RECLAIM_ERROR_COMPLETION);
> +
>       /*
>        * On GuC firmware 70.66 and above, use the Feature KLV (shared with the
>        * WA KLV buffer); older firmware uses GUC_CTL_DISABLE_MULTI_QUEUE in
> diff --git a/drivers/gpu/drm/xe/xe_wa_oob.rules 
> b/drivers/gpu/drm/xe/xe_wa_oob.rules
> index 96132c6e3340..c73694aa40ca 100644
> --- a/drivers/gpu/drm/xe/xe_wa_oob.rules
> +++ b/drivers/gpu/drm/xe/xe_wa_oob.rules
> @@ -77,3 +77,4 @@
>  14025941587  GRAPHICS_VERSION_RANGE(2001, 3511), 
> FUNC(xe_rtp_match_not_sriov_vf)
>               MEDIA_VERSION_RANGE(1301, 3503), FUNC(xe_rtp_match_not_sriov_vf)
>  16030224309  GRAPHICS_VERSION_RANGE(3510, 3511)
> +14028250015  GRAPHICS_VERSION(3510)
>
> base-commit: d8a353e238652bec29fd452babdaae0044d30b9b
> -- 
> 2.43.0

Reply via email to