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