Changes looks good to me. However CI results seem to be missing? Will review
after a re-run.


On 11/2/2026 10:05 AM, Alan Previn wrote:
> 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
> graphics version 3510.
> 
> v2: Update "Wa" tag to align with others. Don't gate against value of
>     has_page_reclaim_hw_assist. Change the #define name to match GuC
>     specs. (Gustavo).
> 
> 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       | 5 +++++
>  drivers/gpu/drm/xe/xe_wa_oob.rules    | 1 +
>  3 files changed, 7 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..4103de0b1c97 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_PAGE_RECLAMATION_COMPLETION_TIMEOUT                          
>         = 0x9012,
>  };
>  
>  /**
> diff --git a/drivers/gpu/drm/xe/xe_guc_ads.c b/drivers/gpu/drm/xe/xe_guc_ads.c
> index c3ce3c8c905a..1927b595ad67 100644
> --- a/drivers/gpu/drm/xe/xe_guc_ads.c
> +++ b/drivers/gpu/drm/xe/xe_guc_ads.c
> @@ -389,6 +389,11 @@ 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))
> +             guc_waklv_enable(ads, NULL, 0, &offset, &remain,
> +                              
> GUC_WA_KLV_PAGE_RECLAMATION_COMPLETION_TIMEOUT);
> +
>       /*
>        * 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 61aa50a63764..fde91192bd46 100644
> --- a/drivers/gpu/drm/xe/xe_wa_oob.rules
> +++ b/drivers/gpu/drm/xe/xe_wa_oob.rules
> @@ -78,3 +78,4 @@
>               MEDIA_VERSION_RANGE(1301, 3503), FUNC(xe_rtp_match_not_sriov_vf)
>  16030224309  GRAPHICS_VERSION_RANGE(3510, 3511)
>  14028709524  GRAPHICS_VERSION(3510)
> +14028250015  GRAPHICS_VERSION(3510)
> 
> base-commit: 2cd78713d917a02987f21b437561a5e1e13ddda2

Reply via email to