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(>->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
