Commit bdde16c9 authored by Vinay Belgaumkar's avatar Vinay Belgaumkar Committed by Lucas De Marchi
Browse files

drm/xe/bmg: Update Wa_14022085890



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

v2: Review comments (Rodrigo)
v3: Apply Wa earlier so user_req_min is not clobbered.
v4: Apply to all GTs (Lucas)

Cc: Matt Roper <matthew.d.roper@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: default avatarVinay Belgaumkar <vinay.belgaumkar@intel.com>
Reviewed-by: default avatarStuart Summers <stuart.summers@intel.com>
Link: https://lore.kernel.org/r/20250612-wa-14022085890-v4-3-94ba5dcc1e30@intel.com


Signed-off-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
parent 6ab42fa0
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@

#define LNL_MERT_FREQ_CAP	800
#define BMG_MERT_FREQ_CAP	2133
#define BMG_MIN_FREQ		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 */
@@ -817,6 +818,7 @@ void xe_guc_pc_init_early(struct xe_guc_pc *pc)

static int pc_adjust_freq_bounds(struct xe_guc_pc *pc)
{
	struct xe_tile *tile = gt_to_tile(pc_to_gt(pc));
	int ret;

	lockdep_assert_held(&pc->freq_lock);
@@ -843,6 +845,9 @@ static int pc_adjust_freq_bounds(struct xe_guc_pc *pc)
	if (pc_get_min_freq(pc) > pc->rp0_freq)
		ret = pc_set_min_freq(pc, pc->rp0_freq);

	if (XE_WA(tile->primary_gt, 14022085890))
		ret = pc_set_min_freq(pc, max(BMG_MIN_FREQ, pc_get_min_freq(pc)));

out:
	return ret;
}
+4 −0
Original line number Diff line number Diff line
@@ -59,3 +59,7 @@ no_media_l3 MEDIA_VERSION(3000)
		MEDIA_VERSION_RANGE(1301, 3000)
16026508708	GRAPHICS_VERSION_RANGE(1200, 3001)
		MEDIA_VERSION_RANGE(1300, 3000)

# SoC workaround - currently applies to all platforms with the following
# primary GT GMDID
14022085890	GRAPHICS_VERSION(2001)