intel: add missing ICL GT workarounds from Linux 7.1

This commit is contained in:
2026-06-03 09:12:09 +03:00
parent d6b881f9c5
commit b402e16001
2 changed files with 30 additions and 0 deletions
@@ -83,6 +83,12 @@ pub const GAMT_CHKN_BIT_REG: usize = 0x4ABC;
pub const GEN11_GT_SCRATCH: usize = 0xA18C;
pub const GEN11_COMMON_SLICE_CHICKEN3: usize = 0x7304;
pub const GEN11_CHICKEN_DCPR_2: usize = 0x46434;
pub const GEN11_GACB_PERF_CTRL: usize = 0x4B80;
pub const GEN11_HASH_CTRL_MASK: u32 = (0x3 << 12) | (0xF << 0);
pub const GEN11_HASH_CTRL_BIT0: u32 = 1 << 0;
pub const GEN11_HASH_CTRL_BIT4: u32 = 1 << 12;
pub const GEN11_LSN_UNSLCVC_GAFS_HALF_SF_MAXALLOC: u32 = 1 << 7;
pub const GEN11_LSN_UNSLCVC_GAFS_HALF_CL2_MAXALLOC: u32 = 1 << 9;
// ---------------------------------------------------------------------------
// Gen12
@@ -316,6 +316,30 @@ fn icl_gt_workarounds_init(wal: &mut WorkaroundList) {
// Gen11 (ICL) inherits Gen9 workarounds.
gen9_gt_workarounds_init(wal, 0);
/* WaModifyGamTlbPartitioning:icl */
wa_write_clr_set(wal, GEN11_GACB_PERF_CTRL, GEN11_HASH_CTRL_MASK, GEN11_HASH_CTRL_BIT0 | GEN11_HASH_CTRL_BIT4, "WaModifyGamTlbPartitioning");
/* Wa_1405766107:icl */
wa_write_or(wal, GEN11_LSN_UNSLCVC, GEN11_LSN_UNSLCVC_GAFS_HALF_SF_MAXALLOC | GEN11_LSN_UNSLCVC_GAFS_HALF_CL2_MAXALLOC, "Wa_1405766107");
/* Wa_220166154:icl */
wa_write_or(wal, GEN8_GAMW_ECO_DEV_RW_IA, GAMW_ECO_DEV_CTX_RELOAD_DISABLE, "Wa_220166154");
/* Wa_1406463099:icl */
wa_write_or(wal, GAMT_CHKN_BIT_REG, GAMT_CHKN_DISABLE_L3_COH_PIPE, "Wa_1406463099");
/* Wa_1408615072 / Wa_1407596294:icl */
wa_write_or(wal, UNSLICE_UNIT_LEVEL_CLKGATE, VSUNIT_CLKGATE_DIS | HSUNIT_CLKGATE_DIS, "Wa_1408615072");
/* Wa_1407352427:icl */
wa_write_or(wal, UNSLICE_UNIT_LEVEL_CLKGATE2, PSDUNIT_CLKGATE_DIS, "Wa_1407352427");
/* Wa_1406680159:icl */
wa_mcr_write_or(wal, GEN11_SUBSLICE_UNIT_LEVEL_CLKGATE, GWUNIT_CLKGATE_DIS, "Wa_1406680159");
/* Wa_1607087056:icl */
wa_write_or(wal, GEN11_SLICE_UNIT_LEVEL_CLKGATE, L3_CLKGATE_DIS | L3_CR2X_CLKGATE_DIS, "Wa_1607087056");
/* WaForwardProgressSoftReset:icl */
wa_write_or(wal, GEN11_GT_SCRATCH, GEN11_WA_FORWARD_PROGRESS_SOFT_RESET, "WaForwardProgressSoftReset");