[PATCH 1/3] drm/xe/bmg: Update Wa_14022085890

Vinay Belgaumkar vinay.belgaumkar at intel.com
Fri May 30 08:20:45 UTC 2025


Set GT min frequency to 1200Mhz once driver load is
complete.

Cc: Matt Roper <matthew.d.roper at intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar at intel.com>
---
 drivers/gpu/drm/xe/xe_guc_pc.c     | 9 +++++++--
 drivers/gpu/drm/xe/xe_wa_oob.rules | 1 +
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_guc_pc.c b/drivers/gpu/drm/xe/xe_guc_pc.c
index 18c623992035..513657154dbe 100644
--- a/drivers/gpu/drm/xe/xe_guc_pc.c
+++ b/drivers/gpu/drm/xe/xe_guc_pc.c
@@ -51,6 +51,7 @@
 
 #define LNL_MERT_FREQ_CAP	800
 #define BMG_MERT_FREQ_CAP	2133
+#define MIN_FREQ_WA_14022085890	1200
 
 #define SLPC_RESET_TIMEOUT_MS 5 /* roughly 5ms, but no need for precision */
 #define SLPC_RESET_EXTENDED_TIMEOUT_MS 1000 /* To be used only at pc_start */
@@ -911,8 +912,12 @@ int xe_guc_pc_restore_stashed_freq(struct xe_guc_pc *pc)
 
 	mutex_lock(&pc->freq_lock);
 	ret = pc_set_max_freq(pc, pc->stashed_max_freq);
-	if (!ret)
-		ret = pc_set_min_freq(pc, pc->stashed_min_freq);
+	if (!ret) {
+		if (XE_WA(pc_to_gt(pc), 14022085890))
+			ret = pc_set_min_freq(pc, MIN_FREQ_WA_14022085890);
+		else
+			ret = pc_set_min_freq(pc, pc->stashed_min_freq);
+	}
 	mutex_unlock(&pc->freq_lock);
 
 	return ret;
diff --git a/drivers/gpu/drm/xe/xe_wa_oob.rules b/drivers/gpu/drm/xe/xe_wa_oob.rules
index 9efc5accd43d..75fbdab68d44 100644
--- a/drivers/gpu/drm/xe/xe_wa_oob.rules
+++ b/drivers/gpu/drm/xe/xe_wa_oob.rules
@@ -59,3 +59,4 @@ no_media_l3	MEDIA_VERSION(3000)
 		MEDIA_VERSION_RANGE(1301, 3000)
 16026508708	GRAPHICS_VERSION_RANGE(1200, 3001)
 		MEDIA_VERSION_RANGE(1300, 3000)
+14022085890	GRAPHICS_VERSION(2001)
-- 
2.38.1



More information about the Intel-xe mailing list