Commit b7f888ee authored by John Harrison's avatar John Harrison
Browse files

drm/xe/lnl: Enable more GuC based workarounds



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: default avatarJohn Harrison <John.C.Harrison@Intel.com>
Reviewed-by: default avatarVinay Belgaumkar <vinay.belgaumkar@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240410002646.3002394-2-John.C.Harrison@Intel.com
parent ac6598ae
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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
+8 −0
Original line number Diff line number Diff line
@@ -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)
+3 −0
Original line number Diff line number Diff line
@@ -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)