drm/xe/lnl: Enable more GuC based workarounds
authorJohn Harrison <John.C.Harrison@Intel.com>
Wed, 10 Apr 2024 00:26:45 +0000 (17:26 -0700)
committerJohn Harrison <John.C.Harrison@Intel.com>
Tue, 16 Apr 2024 17:50:36 +0000 (10:50 -0700)
There are a couple of new workarounds for LNL that are implemented in
the GuC firmware. The KMD needs to enable them explicitly.

Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Reviewed-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240410002646.3002394-2-John.C.Harrison@Intel.com
drivers/gpu/drm/xe/abi/guc_klvs_abi.h
drivers/gpu/drm/xe/xe_guc_ads.c
drivers/gpu/drm/xe/xe_wa_oob.rules

index 5dd45e06f0b66f2309654ab5b0eb4d615ccf4ff9..0972113f6b81ce36c7f7c8f679c225fe47a7e013 100644 (file)
@@ -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
index 757cbbb8786974158919f799b0e53ad3cf07b90b..678ece36605605e5a025fa856a756849c482de44 100644 (file)
@@ -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)
index 98a81468bc8e889c68356335a6dab0ec1e2f9e00..5759b7bc1b709d5ec096f67deab8e148130be037 100644 (file)
@@ -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)