drm/xe/guc: Enable w/a 16026508708
authorJohn Harrison <John.C.Harrison@Intel.com>
Thu, 3 Apr 2025 18:56:11 +0000 (11:56 -0700)
committerLucas De Marchi <lucas.demarchi@intel.com>
Thu, 10 Apr 2025 21:09:35 +0000 (14:09 -0700)
The workaround is only relevant to SRIOV but does affect all platforms.

Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Link: https://lore.kernel.org/r/20250403185619.1555853-2-John.C.Harrison@Intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@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 d633f1c739e43a5b6032a5d2096f77b411b027fe..7de8f827281fcd0278a0a490191111857f5ee73c 100644 (file)
@@ -367,6 +367,7 @@ enum xe_guc_klv_ids {
        GUC_WA_KLV_NP_RD_WRITE_TO_CLEAR_RCSM_AT_CGP_LATE_RESTORE                        = 0x9008,
        GUC_WORKAROUND_KLV_ID_BACK_TO_BACK_RCS_ENGINE_RESET                             = 0x9009,
        GUC_WA_KLV_WAKE_POWER_DOMAINS_FOR_OUTBOUND_MMIO                                 = 0x900a,
+       GUC_WA_KLV_RESET_BB_STACK_PTR_ON_VF_SWITCH                                      = 0x900b,
 };
 
 #endif
index 88400f249e61429c83ad10c57cd991e403cf9682..315f86c9164f8080dfe9cf9fe6b09a14d1dad300 100644 (file)
@@ -376,6 +376,11 @@ static void guc_waklv_init(struct xe_guc_ads *ads)
                                        GUC_WORKAROUND_KLV_ID_BACK_TO_BACK_RCS_ENGINE_RESET,
                                        &offset, &remain);
 
+       if (GUC_FIRMWARE_VER(&gt->uc.guc) >= MAKE_GUC_VER(70, 44, 0) && XE_WA(gt, 16026508708))
+               guc_waklv_enable_simple(ads,
+                                       GUC_WA_KLV_RESET_BB_STACK_PTR_ON_VF_SWITCH,
+                                       &offset, &remain);
+
        size = guc_ads_waklv_size(ads) - remain;
        if (!size)
                return;
index 9b9e176992a83763a9b8d655db51909b4c9fc390..9efc5accd43d1c3ca8a55a62af22b74c414b93d1 100644 (file)
@@ -57,3 +57,5 @@ no_media_l3   MEDIA_VERSION(3000)
                GRAPHICS_VERSION(1260), GRAPHICS_STEP(A0, B0)
 16023105232    GRAPHICS_VERSION_RANGE(2001, 3001)
                MEDIA_VERSION_RANGE(1301, 3000)
+16026508708    GRAPHICS_VERSION_RANGE(1200, 3001)
+               MEDIA_VERSION_RANGE(1300, 3000)