* [Intel-gfx] [PATCH v3 0/9] Reduce MTL-specific platform checks
@ 2023-08-10 21:57 Matt Roper
2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 1/9] drm/i915: Consolidate condition for Wa_22011802037 Matt Roper
` (12 more replies)
0 siblings, 13 replies; 17+ messages in thread
From: Matt Roper @ 2023-08-10 21:57 UTC (permalink / raw)
To: intel-gfx; +Cc: matthew.d.roper
Starting with MTL, the hardware moved to a disaggregated IP design where
graphics, media, and display are supposed to be treated independently of
the base platform that they're incorporated into. For driver logic that
is conditional on these IPs, the code should be checking the IP versions
(as read from the GMD_ID registers) rather than trying to match on a
specific platform (e.g., MTL). It's possible that these IPs could show
up again, without changes, on future non-MTL platforms, or that the
current MTL platform could be extended to include new IP versions in
future SKUs or refreshes; making sure our driver's conditions are
handled appropriately future-proofs for both of these cases.
Going forward, conditions like IS_METEORLAKE should be very rare in the
driver; in most places our logic will be conditional upon the IP rather
than the base platform.
v2:
- Rework macros slightly; new IP range and stepping range macros can be
used with both GFX or MEDIA rather than needing separate macros for
each IP. (Tvrtko, Gustavo)
- Fix a > that should have been a >=. (Gustavo)
- Split non-inheritance of media workarounds by future platforms into
its own patch. (Gustavo)
- Extra documentation comments
v3:
- Switch back to separate long-form gfx and media macros with no macro
pasting. (Jani)
- Move GT-specific macros from intel_drv.h to intel_gt.h. (Andi)
- Replace two more IS_METEORLAKE() conditions with IP version checks.
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
Cc: Gustavo Sousa <gustavo.sousa@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Andi Shyti <andi.shyti@linux.intel.com>
Matt Roper (9):
drm/i915: Consolidate condition for Wa_22011802037
drm/i915/xelpmp: Don't assume workarounds extend to future platforms
drm/i915/xelpg: Call Xe_LPG workaround functions based on IP version
drm/i915: Eliminate IS_MTL_GRAPHICS_STEP
drm/i915: Eliminate IS_MTL_MEDIA_STEP
drm/i915: Eliminate IS_MTL_DISPLAY_STEP
drm/i915/mtl: Eliminate subplatforms
drm/i915/display: Eliminate IS_METEORLAKE checks
drm/i915: Replace several IS_METEORLAKE with proper IP version checks
drivers/gpu/drm/i915/display/intel_cdclk.c | 4 +-
drivers/gpu/drm/i915/display/intel_cx0_phy.c | 2 +-
drivers/gpu/drm/i915/display/intel_display.c | 2 +-
.../drm/i915/display/intel_display_device.h | 17 ++++
drivers/gpu/drm/i915/display/intel_dmc.c | 2 +-
drivers/gpu/drm/i915/display/intel_fbc.c | 3 +-
drivers/gpu/drm/i915/display/intel_pmdemand.c | 2 +-
drivers/gpu/drm/i915/display/intel_psr.c | 10 +-
.../drm/i915/display/skl_universal_plane.c | 5 +-
drivers/gpu/drm/i915/gem/i915_gem_create.c | 4 +-
drivers/gpu/drm/i915/gt/gen8_engine_cs.c | 11 ++-
drivers/gpu/drm/i915/gt/intel_engine_cs.c | 4 +-
drivers/gpu/drm/i915/gt/intel_engine_pm.c | 2 +-
.../drm/i915/gt/intel_execlists_submission.c | 4 +-
drivers/gpu/drm/i915/gt/intel_gt.h | 50 ++++++++++
drivers/gpu/drm/i915/gt/intel_gt_mcr.c | 7 +-
drivers/gpu/drm/i915/gt/intel_lrc.c | 4 +-
drivers/gpu/drm/i915/gt/intel_mocs.c | 2 +-
drivers/gpu/drm/i915/gt/intel_rc6.c | 5 +-
drivers/gpu/drm/i915/gt/intel_reset.c | 20 +++-
drivers/gpu/drm/i915/gt/intel_reset.h | 2 +
drivers/gpu/drm/i915/gt/intel_rps.c | 2 +-
drivers/gpu/drm/i915/gt/intel_workarounds.c | 92 ++++++++++---------
drivers/gpu/drm/i915/gt/uc/intel_guc.c | 6 +-
.../gpu/drm/i915/gt/uc/intel_guc_submission.c | 6 +-
drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 3 +-
drivers/gpu/drm/i915/i915_debugfs.c | 2 +-
drivers/gpu/drm/i915/i915_drv.h | 18 +---
drivers/gpu/drm/i915/i915_perf.c | 23 ++---
drivers/gpu/drm/i915/intel_device_info.c | 14 ---
drivers/gpu/drm/i915/intel_device_info.h | 4 -
include/drm/i915_pciids.h | 11 +--
32 files changed, 193 insertions(+), 150 deletions(-)
--
2.41.0
^ permalink raw reply [flat|nested] 17+ messages in thread* [Intel-gfx] [PATCH v3 1/9] drm/i915: Consolidate condition for Wa_22011802037 2023-08-10 21:57 [Intel-gfx] [PATCH v3 0/9] Reduce MTL-specific platform checks Matt Roper @ 2023-08-10 21:57 ` Matt Roper 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 2/9] drm/i915/xelpmp: Don't assume workarounds extend to future platforms Matt Roper ` (11 subsequent siblings) 12 siblings, 0 replies; 17+ messages in thread From: Matt Roper @ 2023-08-10 21:57 UTC (permalink / raw) To: intel-gfx; +Cc: matthew.d.roper The workaround bounds for Wa_22011802037 are somewhat complex and are replicated in several places throughout the code. Pull the condition out to a helper function to prevent mistakes if this condition needs to change again in the future. Signed-off-by: Matt Roper <matthew.d.roper@intel.com> Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com> --- drivers/gpu/drm/i915/gt/intel_engine_cs.c | 4 +--- .../drm/i915/gt/intel_execlists_submission.c | 4 +--- drivers/gpu/drm/i915/gt/intel_reset.c | 18 ++++++++++++++++++ drivers/gpu/drm/i915/gt/intel_reset.h | 2 ++ drivers/gpu/drm/i915/gt/uc/intel_guc.c | 4 +--- .../gpu/drm/i915/gt/uc/intel_guc_submission.c | 4 +--- 6 files changed, 24 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c b/drivers/gpu/drm/i915/gt/intel_engine_cs.c index ee15486fed0d..dfb69fc977a0 100644 --- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c +++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c @@ -1617,9 +1617,7 @@ static int __intel_engine_stop_cs(struct intel_engine_cs *engine, * Wa_22011802037: Prior to doing a reset, ensure CS is * stopped, set ring stop bit and prefetch disable bit to halt CS */ - if (IS_MTL_GRAPHICS_STEP(engine->i915, M, STEP_A0, STEP_B0) || - (GRAPHICS_VER(engine->i915) >= 11 && - GRAPHICS_VER_FULL(engine->i915) < IP_VER(12, 70))) + if (intel_engine_reset_needs_wa_22011802037(engine->gt)) intel_uncore_write_fw(uncore, RING_MODE_GEN7(engine->mmio_base), _MASKED_BIT_ENABLE(GEN12_GFX_PREFETCH_DISABLE)); diff --git a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c index 8a641bcf777c..4d05321dc5b5 100644 --- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c +++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c @@ -3001,9 +3001,7 @@ static void execlists_reset_prepare(struct intel_engine_cs *engine) * Wa_22011802037: In addition to stopping the cs, we need * to wait for any pending mi force wakeups */ - if (IS_MTL_GRAPHICS_STEP(engine->i915, M, STEP_A0, STEP_B0) || - (GRAPHICS_VER(engine->i915) >= 11 && - GRAPHICS_VER_FULL(engine->i915) < IP_VER(12, 70))) + if (intel_engine_reset_needs_wa_22011802037(engine->gt)) intel_engine_wait_for_pending_mi_fw(engine); engine->execlists.reset_ccid = active_ccid(engine); diff --git a/drivers/gpu/drm/i915/gt/intel_reset.c b/drivers/gpu/drm/i915/gt/intel_reset.c index cc6bd21a3e51..1ff7b42521c9 100644 --- a/drivers/gpu/drm/i915/gt/intel_reset.c +++ b/drivers/gpu/drm/i915/gt/intel_reset.c @@ -1632,6 +1632,24 @@ void __intel_fini_wedge(struct intel_wedge_me *w) w->gt = NULL; } +/* + * Wa_22011802037 requires that we (or the GuC) ensure that no command + * streamers are executing MI_FORCE_WAKE while an engine reset is initiated. + */ +bool intel_engine_reset_needs_wa_22011802037(struct intel_gt *gt) +{ + if (GRAPHICS_VER(gt->i915) < 11) + return false; + + if (IS_MTL_GRAPHICS_STEP(gt->i915, M, STEP_A0, STEP_B0)) + return true; + + if (GRAPHICS_VER_FULL(gt->i915) >= IP_VER(12, 70)) + return false; + + return true; +} + #if IS_ENABLED(CONFIG_DRM_I915_SELFTEST) #include "selftest_reset.c" #include "selftest_hangcheck.c" diff --git a/drivers/gpu/drm/i915/gt/intel_reset.h b/drivers/gpu/drm/i915/gt/intel_reset.h index 25c975b6e8fc..f615b30b81c5 100644 --- a/drivers/gpu/drm/i915/gt/intel_reset.h +++ b/drivers/gpu/drm/i915/gt/intel_reset.h @@ -78,4 +78,6 @@ void __intel_fini_wedge(struct intel_wedge_me *w); bool intel_has_gpu_reset(const struct intel_gt *gt); bool intel_has_reset_engine(const struct intel_gt *gt); +bool intel_engine_reset_needs_wa_22011802037(struct intel_gt *gt); + #endif /* I915_RESET_H */ diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc.c index 569b5fe94c41..22649831d3bd 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.c @@ -292,9 +292,7 @@ static u32 guc_ctl_wa_flags(struct intel_guc *guc) flags |= GUC_WA_DUAL_QUEUE; /* Wa_22011802037: graphics version 11/12 */ - if (IS_MTL_GRAPHICS_STEP(gt->i915, M, STEP_A0, STEP_B0) || - (GRAPHICS_VER(gt->i915) >= 11 && - GRAPHICS_VER_FULL(gt->i915) < IP_VER(12, 70))) + if (intel_engine_reset_needs_wa_22011802037(gt)) flags |= GUC_WA_PRE_PARSER; /* Wa_16011777198:dg2 */ diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c index a0e3ef1c65d2..1bd5d8f7c40b 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c @@ -1658,9 +1658,7 @@ static void guc_engine_reset_prepare(struct intel_engine_cs *engine) * Wa_22011802037: In addition to stopping the cs, we need * to wait for any pending mi force wakeups */ - if (IS_MTL_GRAPHICS_STEP(engine->i915, M, STEP_A0, STEP_B0) || - (GRAPHICS_VER(engine->i915) >= 11 && - GRAPHICS_VER_FULL(engine->i915) < IP_VER(12, 70))) { + if (intel_engine_reset_needs_wa_22011802037(engine->gt)) { intel_engine_stop_cs(engine); intel_engine_wait_for_pending_mi_fw(engine); } -- 2.41.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Intel-gfx] [PATCH v3 2/9] drm/i915/xelpmp: Don't assume workarounds extend to future platforms 2023-08-10 21:57 [Intel-gfx] [PATCH v3 0/9] Reduce MTL-specific platform checks Matt Roper 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 1/9] drm/i915: Consolidate condition for Wa_22011802037 Matt Roper @ 2023-08-10 21:57 ` Matt Roper 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 3/9] drm/i915/xelpg: Call Xe_LPG workaround functions based on IP version Matt Roper ` (10 subsequent siblings) 12 siblings, 0 replies; 17+ messages in thread From: Matt Roper @ 2023-08-10 21:57 UTC (permalink / raw) To: intel-gfx; +Cc: matthew.d.roper The currently implemented Xe_LPM+ workarounds are specific to media version 13.00. When new IP versions show up in the future, they'll need their own workaround lists. Signed-off-by: Matt Roper <matthew.d.roper@intel.com> Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com> --- drivers/gpu/drm/i915/gt/intel_workarounds.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c index 3ae0dbd39eaa..3108ad1d6207 100644 --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c @@ -1818,10 +1818,10 @@ gt_init_workarounds(struct intel_gt *gt, struct i915_wa_list *wal) gt_tuning_settings(gt, wal); if (gt->type == GT_MEDIA) { - if (MEDIA_VER(i915) >= 13) + if (MEDIA_VER_FULL(i915) == IP_VER(13, 0)) xelpmp_gt_workarounds_init(gt, wal); else - MISSING_CASE(MEDIA_VER(i915)); + MISSING_CASE(MEDIA_VER_FULL(i915)); return; } -- 2.41.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Intel-gfx] [PATCH v3 3/9] drm/i915/xelpg: Call Xe_LPG workaround functions based on IP version 2023-08-10 21:57 [Intel-gfx] [PATCH v3 0/9] Reduce MTL-specific platform checks Matt Roper 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 1/9] drm/i915: Consolidate condition for Wa_22011802037 Matt Roper 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 2/9] drm/i915/xelpmp: Don't assume workarounds extend to future platforms Matt Roper @ 2023-08-10 21:57 ` Matt Roper 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 4/9] drm/i915: Eliminate IS_MTL_GRAPHICS_STEP Matt Roper ` (9 subsequent siblings) 12 siblings, 0 replies; 17+ messages in thread From: Matt Roper @ 2023-08-10 21:57 UTC (permalink / raw) To: intel-gfx; +Cc: matthew.d.roper Although some of our Xe_LPG workarounds were already being applied based on IP version correctly, others were matching on MTL as a base platform, which is incorrect. Although MTL is the only platform right now that uses Xe_LPG IP, this may not always be the case. If a future platform re-uses this graphics IP, the same workarounds should be applied, even if it isn't a "MTL" platform. We were also incorrectly applying Xe_LPG workarounds/tuning to the Xe_LPM+ media IP in one or two places; we should make sure that we don't try to apply graphics workarounds to the media GT and vice versa where they don't belong. A new helper macro IS_GT_IP_RANGE() is added to help ensure this is handled properly -- it checks that the GT matches the IP type being tested as well as the IP version falling in the proper range. Note that many of the stepping-based workarounds are still incorrectly checking for a MTL base platform; that will be remedied in a later patch. v2: - Rework macro into a slightly more generic IS_GT_IP_RANGE() that can be used for either GFX or MEDIA checks. v3: - Switch back to separate macros for gfx and media. (Jani) - Move macro to intel_gt.h. (Andi) Cc: Gustavo Sousa <gustavo.sousa@intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: Andi Shyti <andi.shyti@linux.intel.com> Signed-off-by: Matt Roper <matthew.d.roper@intel.com> --- drivers/gpu/drm/i915/gt/intel_gt.h | 11 ++++++ drivers/gpu/drm/i915/gt/intel_workarounds.c | 38 +++++++++++---------- 2 files changed, 31 insertions(+), 18 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/intel_gt.h b/drivers/gpu/drm/i915/gt/intel_gt.h index 6c34547b58b5..7649a46a36cc 100644 --- a/drivers/gpu/drm/i915/gt/intel_gt.h +++ b/drivers/gpu/drm/i915/gt/intel_gt.h @@ -14,6 +14,17 @@ struct drm_i915_private; struct drm_printer; +/* + * Check that the GT is a graphics GT and has an IP version within the + * specified range (inclusive). + */ +#define IS_GFX_GT_IP_RANGE(gt, from, until) ( \ + BUILD_BUG_ON_ZERO((from) < IP_VER(2, 0)) + \ + BUILD_BUG_ON_ZERO((until) < (from)) + \ + ((gt)->type != GT_MEDIA && \ + GRAPHICS_VER_FULL((gt)->i915) >= (from) && \ + GRAPHICS_VER_FULL((gt)->i915) <= (until))) + #define GT_TRACE(gt, fmt, ...) do { \ const struct intel_gt *gt__ __maybe_unused = (gt); \ GEM_TRACE("%s " fmt, dev_name(gt__->i915->drm.dev), \ diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c index 3108ad1d6207..80d67e487b55 100644 --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c @@ -805,8 +805,8 @@ static void dg2_ctx_workarounds_init(struct intel_engine_cs *engine, wa_masked_en(wal, CACHE_MODE_1, MSAA_OPTIMIZATION_REDUC_DISABLE); } -static void mtl_ctx_gt_tuning_init(struct intel_engine_cs *engine, - struct i915_wa_list *wal) +static void xelpg_ctx_gt_tuning_init(struct intel_engine_cs *engine, + struct i915_wa_list *wal) { struct drm_i915_private *i915 = engine->i915; @@ -817,12 +817,12 @@ static void mtl_ctx_gt_tuning_init(struct intel_engine_cs *engine, wa_add(wal, DRAW_WATERMARK, VERT_WM_VAL, 0x3FF, 0, false); } -static void mtl_ctx_workarounds_init(struct intel_engine_cs *engine, - struct i915_wa_list *wal) +static void xelpg_ctx_workarounds_init(struct intel_engine_cs *engine, + struct i915_wa_list *wal) { struct drm_i915_private *i915 = engine->i915; - mtl_ctx_gt_tuning_init(engine, wal); + xelpg_ctx_gt_tuning_init(engine, wal); if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) { @@ -931,8 +931,8 @@ __intel_engine_init_ctx_wa(struct intel_engine_cs *engine, if (engine->class != RENDER_CLASS) goto done; - if (IS_METEORLAKE(i915)) - mtl_ctx_workarounds_init(engine, wal); + if (IS_GFX_GT_IP_RANGE(engine->gt, IP_VER(12, 70), IP_VER(12, 71))) + xelpg_ctx_workarounds_init(engine, wal); else if (IS_PONTEVECCHIO(i915)) ; /* noop; none at this time */ else if (IS_DG2(i915)) @@ -1791,10 +1791,8 @@ xelpmp_gt_workarounds_init(struct intel_gt *gt, struct i915_wa_list *wal) */ static void gt_tuning_settings(struct intel_gt *gt, struct i915_wa_list *wal) { - if (IS_METEORLAKE(gt->i915)) { - if (gt->type != GT_MEDIA) - wa_mcr_write_or(wal, XEHP_L3SCQREG7, BLEND_FILL_CACHING_OPT_DIS); - + if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 71))) { + wa_mcr_write_or(wal, XEHP_L3SCQREG7, BLEND_FILL_CACHING_OPT_DIS); wa_mcr_write_or(wal, XEHP_SQCM, EN_32B_ACCESS); } @@ -1826,7 +1824,7 @@ gt_init_workarounds(struct intel_gt *gt, struct i915_wa_list *wal) return; } - if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 70)) + if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 71))) xelpg_gt_workarounds_init(gt, wal); else if (IS_PONTEVECCHIO(i915)) pvc_gt_workarounds_init(gt, wal); @@ -2294,7 +2292,7 @@ static void pvc_whitelist_build(struct intel_engine_cs *engine) blacklist_trtt(engine); } -static void mtl_whitelist_build(struct intel_engine_cs *engine) +static void xelpg_whitelist_build(struct intel_engine_cs *engine) { struct i915_wa_list *w = &engine->whitelist; @@ -2316,8 +2314,10 @@ void intel_engine_init_whitelist(struct intel_engine_cs *engine) wa_init_start(w, engine->gt, "whitelist", engine->name); - if (IS_METEORLAKE(i915)) - mtl_whitelist_build(engine); + if (engine->gt->type == GT_MEDIA) + ; /* none yet */ + else if (IS_GFX_GT_IP_RANGE(engine->gt, IP_VER(12, 70), IP_VER(12, 71))) + xelpg_whitelist_build(engine); else if (IS_PONTEVECCHIO(i915)) pvc_whitelist_build(engine); else if (IS_DG2(i915)) @@ -2975,10 +2975,12 @@ ccs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal) * function invoked by __intel_engine_init_ctx_wa(). */ static void -add_render_compute_tuning_settings(struct drm_i915_private *i915, +add_render_compute_tuning_settings(struct intel_gt *gt, struct i915_wa_list *wal) { - if (IS_METEORLAKE(i915) || IS_DG2(i915)) + struct drm_i915_private *i915 = gt->i915; + + if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 71)) || IS_DG2(i915)) wa_mcr_write_clr_set(wal, RT_CTRL, STACKID_CTRL, STACKID_CTRL_512); /* @@ -3008,7 +3010,7 @@ general_render_compute_wa_init(struct intel_engine_cs *engine, struct i915_wa_li { struct drm_i915_private *i915 = engine->i915; - add_render_compute_tuning_settings(i915, wal); + add_render_compute_tuning_settings(engine->gt, wal); if (GRAPHICS_VER(i915) >= 11) { /* This is not a Wa (although referred to as -- 2.41.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Intel-gfx] [PATCH v3 4/9] drm/i915: Eliminate IS_MTL_GRAPHICS_STEP 2023-08-10 21:57 [Intel-gfx] [PATCH v3 0/9] Reduce MTL-specific platform checks Matt Roper ` (2 preceding siblings ...) 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 3/9] drm/i915/xelpg: Call Xe_LPG workaround functions based on IP version Matt Roper @ 2023-08-10 21:57 ` Matt Roper 2023-08-11 7:32 ` Jani Nikula 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 5/9] drm/i915: Eliminate IS_MTL_MEDIA_STEP Matt Roper ` (8 subsequent siblings) 12 siblings, 1 reply; 17+ messages in thread From: Matt Roper @ 2023-08-10 21:57 UTC (permalink / raw) To: intel-gfx; +Cc: matthew.d.roper Several workarounds are guarded by IS_MTL_GRAPHICS_STEP. However none of these workarounds are actually tied to MTL as a platform; they only relate to the Xe_LPG graphics IP, regardless of what platform it appears in. At the moment MTL is the only platform that uses Xe_LPG with IP versions 12.70 and 12.71, but we can't count on this being true in the future. Switch these to use a new IS_GFX_GT_IP_STEP() macro instead that is purely based on IP version. IS_GFX_GT_IP_STEP() is also GT-based rather than device-based, which will help prevent mistakes where we accidentally try to apply Xe_LPG graphics workarounds to the Xe_LPM+ media GT and vice-versa. v2: - Switch to a more generic and shorter IS_GT_IP_STEP macro that can be used for both graphics and media IP (and any other kind of GTs that show up in the future). v3: - Switch back to long-form IS_GFX_GT_IP_STEP macro. (Jani) - Move macro to intel_gt.h. (Andi) Cc: Gustavo Sousa <gustavo.sousa@intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> Cc: Andi Shyti <andi.shyti@linux.intel.com> Cc: Jani Nikula <jani.nikula@linux.intel.com> Signed-off-by: Matt Roper <matthew.d.roper@intel.com> --- .../drm/i915/display/skl_universal_plane.c | 5 +- drivers/gpu/drm/i915/gt/gen8_engine_cs.c | 11 ++-- drivers/gpu/drm/i915/gt/intel_gt.h | 20 +++++++ drivers/gpu/drm/i915/gt/intel_gt_mcr.c | 7 ++- drivers/gpu/drm/i915/gt/intel_lrc.c | 4 +- drivers/gpu/drm/i915/gt/intel_reset.c | 2 +- drivers/gpu/drm/i915/gt/intel_workarounds.c | 52 ++++++++++--------- drivers/gpu/drm/i915/gt/uc/intel_guc.c | 2 +- .../gpu/drm/i915/gt/uc/intel_guc_submission.c | 2 +- drivers/gpu/drm/i915/i915_drv.h | 4 -- 10 files changed, 64 insertions(+), 45 deletions(-) diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c index ffc15d278a39..d557ecd4e1eb 100644 --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c @@ -20,6 +20,7 @@ #include "skl_scaler.h" #include "skl_universal_plane.h" #include "skl_watermark.h" +#include "gt/intel_gt.h" #include "pxp/intel_pxp.h" static const u32 skl_plane_formats[] = { @@ -2169,8 +2170,8 @@ static bool skl_plane_has_rc_ccs(struct drm_i915_private *i915, enum pipe pipe, enum plane_id plane_id) { /* Wa_14017240301 */ - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) + if (IS_GFX_GT_IP_STEP(to_gt(i915), IP_VER(12, 70), STEP_A0, STEP_B0) || + IS_GFX_GT_IP_STEP(to_gt(i915), IP_VER(12, 71), STEP_A0, STEP_B0)) return false; /* Wa_22011186057 */ diff --git a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c index a4ff55aa5e55..6187b25b67ab 100644 --- a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c +++ b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c @@ -4,9 +4,9 @@ */ #include "gen8_engine_cs.h" -#include "i915_drv.h" #include "intel_engine_regs.h" #include "intel_gpu_commands.h" +#include "intel_gt.h" #include "intel_lrc.h" #include "intel_ring.h" @@ -226,8 +226,8 @@ u32 *gen12_emit_aux_table_inv(struct intel_engine_cs *engine, u32 *cs) static int mtl_dummy_pipe_control(struct i915_request *rq) { /* Wa_14016712196 */ - if (IS_MTL_GRAPHICS_STEP(rq->i915, M, STEP_A0, STEP_B0) || - IS_MTL_GRAPHICS_STEP(rq->i915, P, STEP_A0, STEP_B0)) { + if (IS_GFX_GT_IP_STEP(rq->engine->gt, IP_VER(12, 70), STEP_A0, STEP_B0) || + IS_GFX_GT_IP_STEP(rq->engine->gt, IP_VER(12, 71), STEP_A0, STEP_B0)) { u32 *cs; /* dummy PIPE_CONTROL + depth flush */ @@ -799,6 +799,7 @@ u32 *gen12_emit_fini_breadcrumb_xcs(struct i915_request *rq, u32 *cs) u32 *gen12_emit_fini_breadcrumb_rcs(struct i915_request *rq, u32 *cs) { struct drm_i915_private *i915 = rq->i915; + struct intel_gt *gt = rq->engine->gt; u32 flags = (PIPE_CONTROL_CS_STALL | PIPE_CONTROL_TLB_INVALIDATE | PIPE_CONTROL_TILE_CACHE_FLUSH | @@ -809,8 +810,8 @@ u32 *gen12_emit_fini_breadcrumb_rcs(struct i915_request *rq, u32 *cs) PIPE_CONTROL_FLUSH_ENABLE); /* Wa_14016712196 */ - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) /* dummy PIPE_CONTROL + depth flush */ cs = gen12_emit_pipe_control(cs, 0, PIPE_CONTROL_DEPTH_CACHE_FLUSH, 0); diff --git a/drivers/gpu/drm/i915/gt/intel_gt.h b/drivers/gpu/drm/i915/gt/intel_gt.h index 7649a46a36cc..de1bb04c864a 100644 --- a/drivers/gpu/drm/i915/gt/intel_gt.h +++ b/drivers/gpu/drm/i915/gt/intel_gt.h @@ -25,6 +25,26 @@ struct drm_printer; GRAPHICS_VER_FULL((gt)->i915) >= (from) && \ GRAPHICS_VER_FULL((gt)->i915) <= (until))) +/* + * Check that the GT is a graphics GT with a specific IP version and has + * a stepping in the range [begin, fixed). The lower stepping bound is + * inclusive, the upper bound is exclusive (corresponding to the first hardware + * stepping at which the workaround is no longer needed). E.g., + * + * IS_GFX_GT_IP_STEP(GFX, IP_VER(12, 70), STEP_A0, STEP_B0) + * IS_GFX_GT_IP_STEP(GFX, IP_VER(12, 71), STEP_B1, STEP_FOREVER) + * + * "STEP_FOREVER" can be passed as the upper stepping bound for workarounds + * that have no "fixed" version for the specified IP version. + */ +#define IS_GFX_GT_IP_STEP(gt, ipver, begin, fixed) ( \ + BUILD_BUG_ON_ZERO((ipver) < IP_VER(2, 0)) + \ + BUILD_BUG_ON_ZERO((fixed) <= (begin)) + \ + ((gt)->type != GT_MEDIA && \ + GRAPHICS_VER_FULL((gt)->i915) == (ipver) && \ + INTEL_GRAPHICS_STEP((gt)->i915) >= (begin) && \ + INTEL_GRAPHICS_STEP((gt)->i915) < (fixed))) + #define GT_TRACE(gt, fmt, ...) do { \ const struct intel_gt *gt__ __maybe_unused = (gt); \ GEM_TRACE("%s " fmt, dev_name(gt__->i915->drm.dev), \ diff --git a/drivers/gpu/drm/i915/gt/intel_gt_mcr.c b/drivers/gpu/drm/i915/gt/intel_gt_mcr.c index 0b414eae1683..11d181b1cc7a 100644 --- a/drivers/gpu/drm/i915/gt/intel_gt_mcr.c +++ b/drivers/gpu/drm/i915/gt/intel_gt_mcr.c @@ -3,8 +3,7 @@ * Copyright © 2022 Intel Corporation */ -#include "i915_drv.h" - +#include "intel_gt.h" #include "intel_gt_mcr.h" #include "intel_gt_print.h" #include "intel_gt_regs.h" @@ -166,8 +165,8 @@ void intel_gt_mcr_init(struct intel_gt *gt) gt->steering_table[OADDRM] = xelpmp_oaddrm_steering_table; } else if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 70)) { /* Wa_14016747170 */ - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) fuse = REG_FIELD_GET(MTL_GT_L3_EXC_MASK, intel_uncore_read(gt->uncore, MTL_GT_ACTIVITY_FACTOR)); diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c index 957d0aeb0c02..1f0768652446 100644 --- a/drivers/gpu/drm/i915/gt/intel_lrc.c +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c @@ -1375,8 +1375,8 @@ gen12_emit_indirect_ctx_rcs(const struct intel_context *ce, u32 *cs) cs = gen12_emit_aux_table_inv(ce->engine, cs); /* Wa_16014892111 */ - if (IS_MTL_GRAPHICS_STEP(ce->engine->i915, M, STEP_A0, STEP_B0) || - IS_MTL_GRAPHICS_STEP(ce->engine->i915, P, STEP_A0, STEP_B0) || + if (IS_GFX_GT_IP_STEP(ce->engine->gt, IP_VER(12, 70), STEP_A0, STEP_B0) || + IS_GFX_GT_IP_STEP(ce->engine->gt, IP_VER(12, 71), STEP_A0, STEP_B0) || IS_DG2(ce->engine->i915)) cs = dg2_emit_draw_watermark_setting(cs); diff --git a/drivers/gpu/drm/i915/gt/intel_reset.c b/drivers/gpu/drm/i915/gt/intel_reset.c index 1ff7b42521c9..fd6c22aeb670 100644 --- a/drivers/gpu/drm/i915/gt/intel_reset.c +++ b/drivers/gpu/drm/i915/gt/intel_reset.c @@ -1641,7 +1641,7 @@ bool intel_engine_reset_needs_wa_22011802037(struct intel_gt *gt) if (GRAPHICS_VER(gt->i915) < 11) return false; - if (IS_MTL_GRAPHICS_STEP(gt->i915, M, STEP_A0, STEP_B0)) + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0)) return true; if (GRAPHICS_VER_FULL(gt->i915) >= IP_VER(12, 70)) diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c index 80d67e487b55..e2562b0e540d 100644 --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c @@ -808,24 +808,24 @@ static void dg2_ctx_workarounds_init(struct intel_engine_cs *engine, static void xelpg_ctx_gt_tuning_init(struct intel_engine_cs *engine, struct i915_wa_list *wal) { - struct drm_i915_private *i915 = engine->i915; + struct intel_gt *gt = engine->gt; dg2_ctx_gt_tuning_init(engine, wal); - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_B0, STEP_FOREVER) || - IS_MTL_GRAPHICS_STEP(i915, P, STEP_B0, STEP_FOREVER)) + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_B0, STEP_FOREVER) || + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_B0, STEP_FOREVER)) wa_add(wal, DRAW_WATERMARK, VERT_WM_VAL, 0x3FF, 0, false); } static void xelpg_ctx_workarounds_init(struct intel_engine_cs *engine, struct i915_wa_list *wal) { - struct drm_i915_private *i915 = engine->i915; + struct intel_gt *gt = engine->gt; xelpg_ctx_gt_tuning_init(engine, wal); - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) { + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) { /* Wa_14014947963 */ wa_masked_field_set(wal, VF_PREEMPTION, PREEMPTION_VERTEX_COUNT, 0x4000); @@ -1747,8 +1747,8 @@ xelpg_gt_workarounds_init(struct intel_gt *gt, struct i915_wa_list *wal) /* Wa_22016670082 */ wa_write_or(wal, GEN12_SQCNT1, GEN12_STRICT_RAR_ENABLE); - if (IS_MTL_GRAPHICS_STEP(gt->i915, M, STEP_A0, STEP_B0) || - IS_MTL_GRAPHICS_STEP(gt->i915, P, STEP_A0, STEP_B0)) { + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) { /* Wa_14014830051 */ wa_mcr_write_clr(wal, SARB_CHICKEN1, COMP_CKN_IN); @@ -2425,16 +2425,17 @@ static void rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal) { struct drm_i915_private *i915 = engine->i915; + struct intel_gt *gt = engine->gt; - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) { + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) { /* Wa_22014600077 */ wa_mcr_masked_en(wal, GEN10_CACHE_MODE_SS, ENABLE_EU_COUNT_FOR_TDL_FLUSH); } - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0) || + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0) || IS_DG2_GRAPHICS_STEP(i915, G10, STEP_B0, STEP_FOREVER) || IS_DG2_G11(i915) || IS_DG2_G12(i915)) { /* Wa_1509727124 */ @@ -2444,7 +2445,7 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal) if (IS_DG2_GRAPHICS_STEP(i915, G10, STEP_B0, STEP_FOREVER) || IS_DG2_G11(i915) || IS_DG2_G12(i915) || - IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0)) { + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0)) { /* Wa_22012856258 */ wa_mcr_masked_en(wal, GEN8_ROW_CHICKEN2, GEN12_DISABLE_READ_SUPPRESSION); @@ -3009,8 +3010,9 @@ static void general_render_compute_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal) { struct drm_i915_private *i915 = engine->i915; + struct intel_gt *gt = engine->gt; - add_render_compute_tuning_settings(engine->gt, wal); + add_render_compute_tuning_settings(gt, wal); if (GRAPHICS_VER(i915) >= 11) { /* This is not a Wa (although referred to as @@ -3031,13 +3033,13 @@ general_render_compute_wa_init(struct intel_engine_cs *engine, struct i915_wa_li GEN11_INDIRECT_STATE_BASE_ADDR_OVERRIDE); } - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_B0, STEP_FOREVER) || - IS_MTL_GRAPHICS_STEP(i915, P, STEP_B0, STEP_FOREVER)) + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_B0, STEP_FOREVER) || + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_B0, STEP_FOREVER)) /* Wa_14017856879 */ wa_mcr_masked_en(wal, GEN9_ROW_CHICKEN3, MTL_DISABLE_FIX_FOR_EOT_FLUSH); - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) /* * Wa_14017066071 * Wa_14017654203 @@ -3045,13 +3047,13 @@ general_render_compute_wa_init(struct intel_engine_cs *engine, struct i915_wa_li wa_mcr_masked_en(wal, GEN10_SAMPLER_MODE, MTL_DISABLE_SAMPLER_SC_OOO); - if (IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) /* Wa_22015279794 */ wa_mcr_masked_en(wal, GEN10_CACHE_MODE_SS, DISABLE_PREFETCH_INTO_IC); - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0) || + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0) || IS_DG2_GRAPHICS_STEP(i915, G10, STEP_B0, STEP_FOREVER) || IS_DG2_G11(i915) || IS_DG2_G12(i915)) { /* Wa_22013037850 */ @@ -3059,16 +3061,16 @@ general_render_compute_wa_init(struct intel_engine_cs *engine, struct i915_wa_li DISABLE_128B_EVICTION_COMMAND_UDW); } - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0) || + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0) || IS_PONTEVECCHIO(i915) || IS_DG2(i915)) { /* Wa_22014226127 */ wa_mcr_write_or(wal, LSC_CHICKEN_BIT_0, DISABLE_D8_D16_COASLESCE); } - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0) || + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0) || IS_DG2(i915)) { /* Wa_18017747507 */ wa_masked_en(wal, VFG_PREEMPTION_CHICKEN, POLYGON_TRIFAN_LINELOOP_DISABLE); diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc.c index 22649831d3bd..6687cdf0272b 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.c @@ -277,7 +277,7 @@ static u32 guc_ctl_wa_flags(struct intel_guc *guc) flags |= GUC_WA_GAM_CREDITS; /* Wa_14014475959 */ - if (IS_MTL_GRAPHICS_STEP(gt->i915, M, STEP_A0, STEP_B0) || + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || IS_DG2(gt->i915)) flags |= GUC_WA_HOLD_CCS_SWITCHOUT; diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c index 1bd5d8f7c40b..b2150a962f69 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c @@ -4265,7 +4265,7 @@ static void guc_default_vfuncs(struct intel_engine_cs *engine) /* Wa_14014475959:dg2 */ if (engine->class == COMPUTE_CLASS) - if (IS_MTL_GRAPHICS_STEP(engine->i915, M, STEP_A0, STEP_B0) || + if (IS_GFX_GT_IP_STEP(engine->gt, IP_VER(12, 70), STEP_A0, STEP_B0) || IS_DG2(engine->i915)) engine->flags |= I915_ENGINE_USES_WA_HOLD_CCS_SWITCHOUT; diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 7a8ce7239bc9..e0e0493d6c1f 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -658,10 +658,6 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915, #define IS_XEHPSDV_GRAPHICS_STEP(__i915, since, until) \ (IS_XEHPSDV(__i915) && IS_GRAPHICS_STEP(__i915, since, until)) -#define IS_MTL_GRAPHICS_STEP(__i915, variant, since, until) \ - (IS_SUBPLATFORM(__i915, INTEL_METEORLAKE, INTEL_SUBPLATFORM_##variant) && \ - IS_GRAPHICS_STEP(__i915, since, until)) - #define IS_MTL_DISPLAY_STEP(__i915, since, until) \ (IS_METEORLAKE(__i915) && \ IS_DISPLAY_STEP(__i915, since, until)) -- 2.41.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [Intel-gfx] [PATCH v3 4/9] drm/i915: Eliminate IS_MTL_GRAPHICS_STEP 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 4/9] drm/i915: Eliminate IS_MTL_GRAPHICS_STEP Matt Roper @ 2023-08-11 7:32 ` Jani Nikula 2023-08-11 18:02 ` Matt Roper 0 siblings, 1 reply; 17+ messages in thread From: Jani Nikula @ 2023-08-11 7:32 UTC (permalink / raw) To: Matt Roper, intel-gfx; +Cc: matthew.d.roper On Thu, 10 Aug 2023, Matt Roper <matthew.d.roper@intel.com> wrote: > Several workarounds are guarded by IS_MTL_GRAPHICS_STEP. However none > of these workarounds are actually tied to MTL as a platform; they only > relate to the Xe_LPG graphics IP, regardless of what platform it appears > in. At the moment MTL is the only platform that uses Xe_LPG with IP > versions 12.70 and 12.71, but we can't count on this being true in the > future. Switch these to use a new IS_GFX_GT_IP_STEP() macro instead > that is purely based on IP version. IS_GFX_GT_IP_STEP() is also > GT-based rather than device-based, which will help prevent mistakes > where we accidentally try to apply Xe_LPG graphics workarounds to the > Xe_LPM+ media GT and vice-versa. > > v2: > - Switch to a more generic and shorter IS_GT_IP_STEP macro that can be > used for both graphics and media IP (and any other kind of GTs that > show up in the future). > v3: > - Switch back to long-form IS_GFX_GT_IP_STEP macro. (Jani) > - Move macro to intel_gt.h. (Andi) > > Cc: Gustavo Sousa <gustavo.sousa@intel.com> > Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> > Cc: Andi Shyti <andi.shyti@linux.intel.com> > Cc: Jani Nikula <jani.nikula@linux.intel.com> > Signed-off-by: Matt Roper <matthew.d.roper@intel.com> > --- > .../drm/i915/display/skl_universal_plane.c | 5 +- > drivers/gpu/drm/i915/gt/gen8_engine_cs.c | 11 ++-- > drivers/gpu/drm/i915/gt/intel_gt.h | 20 +++++++ > drivers/gpu/drm/i915/gt/intel_gt_mcr.c | 7 ++- > drivers/gpu/drm/i915/gt/intel_lrc.c | 4 +- > drivers/gpu/drm/i915/gt/intel_reset.c | 2 +- > drivers/gpu/drm/i915/gt/intel_workarounds.c | 52 ++++++++++--------- > drivers/gpu/drm/i915/gt/uc/intel_guc.c | 2 +- > .../gpu/drm/i915/gt/uc/intel_guc_submission.c | 2 +- > drivers/gpu/drm/i915/i915_drv.h | 4 -- > 10 files changed, 64 insertions(+), 45 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c > index ffc15d278a39..d557ecd4e1eb 100644 > --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c > +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c > @@ -20,6 +20,7 @@ > #include "skl_scaler.h" > #include "skl_universal_plane.h" > #include "skl_watermark.h" > +#include "gt/intel_gt.h" > #include "pxp/intel_pxp.h" > > static const u32 skl_plane_formats[] = { > @@ -2169,8 +2170,8 @@ static bool skl_plane_has_rc_ccs(struct drm_i915_private *i915, > enum pipe pipe, enum plane_id plane_id) > { > /* Wa_14017240301 */ > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) > + if (IS_GFX_GT_IP_STEP(to_gt(i915), IP_VER(12, 70), STEP_A0, STEP_B0) || > + IS_GFX_GT_IP_STEP(to_gt(i915), IP_VER(12, 71), STEP_A0, STEP_B0)) > return false; > > /* Wa_22011186057 */ > diff --git a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c > index a4ff55aa5e55..6187b25b67ab 100644 > --- a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c > +++ b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c > @@ -4,9 +4,9 @@ > */ > > #include "gen8_engine_cs.h" > -#include "i915_drv.h" > #include "intel_engine_regs.h" > #include "intel_gpu_commands.h" > +#include "intel_gt.h" > #include "intel_lrc.h" > #include "intel_ring.h" > > @@ -226,8 +226,8 @@ u32 *gen12_emit_aux_table_inv(struct intel_engine_cs *engine, u32 *cs) > static int mtl_dummy_pipe_control(struct i915_request *rq) > { > /* Wa_14016712196 */ > - if (IS_MTL_GRAPHICS_STEP(rq->i915, M, STEP_A0, STEP_B0) || > - IS_MTL_GRAPHICS_STEP(rq->i915, P, STEP_A0, STEP_B0)) { > + if (IS_GFX_GT_IP_STEP(rq->engine->gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > + IS_GFX_GT_IP_STEP(rq->engine->gt, IP_VER(12, 71), STEP_A0, STEP_B0)) { > u32 *cs; > > /* dummy PIPE_CONTROL + depth flush */ > @@ -799,6 +799,7 @@ u32 *gen12_emit_fini_breadcrumb_xcs(struct i915_request *rq, u32 *cs) > u32 *gen12_emit_fini_breadcrumb_rcs(struct i915_request *rq, u32 *cs) > { > struct drm_i915_private *i915 = rq->i915; > + struct intel_gt *gt = rq->engine->gt; > u32 flags = (PIPE_CONTROL_CS_STALL | > PIPE_CONTROL_TLB_INVALIDATE | > PIPE_CONTROL_TILE_CACHE_FLUSH | > @@ -809,8 +810,8 @@ u32 *gen12_emit_fini_breadcrumb_rcs(struct i915_request *rq, u32 *cs) > PIPE_CONTROL_FLUSH_ENABLE); > > /* Wa_14016712196 */ > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) > /* dummy PIPE_CONTROL + depth flush */ > cs = gen12_emit_pipe_control(cs, 0, > PIPE_CONTROL_DEPTH_CACHE_FLUSH, 0); > diff --git a/drivers/gpu/drm/i915/gt/intel_gt.h b/drivers/gpu/drm/i915/gt/intel_gt.h > index 7649a46a36cc..de1bb04c864a 100644 > --- a/drivers/gpu/drm/i915/gt/intel_gt.h > +++ b/drivers/gpu/drm/i915/gt/intel_gt.h > @@ -25,6 +25,26 @@ struct drm_printer; > GRAPHICS_VER_FULL((gt)->i915) >= (from) && \ > GRAPHICS_VER_FULL((gt)->i915) <= (until))) > > +/* > + * Check that the GT is a graphics GT with a specific IP version and has > + * a stepping in the range [begin, fixed). The lower stepping bound is > + * inclusive, the upper bound is exclusive (corresponding to the first hardware > + * stepping at which the workaround is no longer needed). E.g., > + * > + * IS_GFX_GT_IP_STEP(GFX, IP_VER(12, 70), STEP_A0, STEP_B0) > + * IS_GFX_GT_IP_STEP(GFX, IP_VER(12, 71), STEP_B1, STEP_FOREVER) > + * > + * "STEP_FOREVER" can be passed as the upper stepping bound for workarounds > + * that have no "fixed" version for the specified IP version. > + */ > +#define IS_GFX_GT_IP_STEP(gt, ipver, begin, fixed) ( \ > + BUILD_BUG_ON_ZERO((ipver) < IP_VER(2, 0)) + \ > + BUILD_BUG_ON_ZERO((fixed) <= (begin)) + \ Why is == not okay? > + ((gt)->type != GT_MEDIA && \ > + GRAPHICS_VER_FULL((gt)->i915) == (ipver) && \ > + INTEL_GRAPHICS_STEP((gt)->i915) >= (begin) && \ > + INTEL_GRAPHICS_STEP((gt)->i915) < (fixed))) > + I'd keep using begin-end or from-until instead of begin-fixed. This check should really agnostic about issues that get fixed. We have macros for checking step ranges, e.g. IS_GRAPHICS_STEP(i915, since, util). They should be used instead of duplicating the condition. And in the previous patch you added IS_GFX_GT_IP_RANGE() which is also pretty much duplicated here? But the stepping check is really orthogonal from the other conditions. I was hoping to replace the IS_MTL_GRAPHICS_STEP() and friends macros with IS_METEORLAKE() && IS_GRAPHICS_STEP() combos, because there's nothing that requires us to keep adding new macros for these. Of course, with the IP check there's no need to add new platform specific macros... but is there a need to combine all these together? BR, Jani. > #define GT_TRACE(gt, fmt, ...) do { \ > const struct intel_gt *gt__ __maybe_unused = (gt); \ > GEM_TRACE("%s " fmt, dev_name(gt__->i915->drm.dev), \ > diff --git a/drivers/gpu/drm/i915/gt/intel_gt_mcr.c b/drivers/gpu/drm/i915/gt/intel_gt_mcr.c > index 0b414eae1683..11d181b1cc7a 100644 > --- a/drivers/gpu/drm/i915/gt/intel_gt_mcr.c > +++ b/drivers/gpu/drm/i915/gt/intel_gt_mcr.c > @@ -3,8 +3,7 @@ > * Copyright © 2022 Intel Corporation > */ > > -#include "i915_drv.h" > - > +#include "intel_gt.h" > #include "intel_gt_mcr.h" > #include "intel_gt_print.h" > #include "intel_gt_regs.h" > @@ -166,8 +165,8 @@ void intel_gt_mcr_init(struct intel_gt *gt) > gt->steering_table[OADDRM] = xelpmp_oaddrm_steering_table; > } else if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 70)) { > /* Wa_14016747170 */ > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) > fuse = REG_FIELD_GET(MTL_GT_L3_EXC_MASK, > intel_uncore_read(gt->uncore, > MTL_GT_ACTIVITY_FACTOR)); > diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c > index 957d0aeb0c02..1f0768652446 100644 > --- a/drivers/gpu/drm/i915/gt/intel_lrc.c > +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c > @@ -1375,8 +1375,8 @@ gen12_emit_indirect_ctx_rcs(const struct intel_context *ce, u32 *cs) > cs = gen12_emit_aux_table_inv(ce->engine, cs); > > /* Wa_16014892111 */ > - if (IS_MTL_GRAPHICS_STEP(ce->engine->i915, M, STEP_A0, STEP_B0) || > - IS_MTL_GRAPHICS_STEP(ce->engine->i915, P, STEP_A0, STEP_B0) || > + if (IS_GFX_GT_IP_STEP(ce->engine->gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > + IS_GFX_GT_IP_STEP(ce->engine->gt, IP_VER(12, 71), STEP_A0, STEP_B0) || > IS_DG2(ce->engine->i915)) > cs = dg2_emit_draw_watermark_setting(cs); > > diff --git a/drivers/gpu/drm/i915/gt/intel_reset.c b/drivers/gpu/drm/i915/gt/intel_reset.c > index 1ff7b42521c9..fd6c22aeb670 100644 > --- a/drivers/gpu/drm/i915/gt/intel_reset.c > +++ b/drivers/gpu/drm/i915/gt/intel_reset.c > @@ -1641,7 +1641,7 @@ bool intel_engine_reset_needs_wa_22011802037(struct intel_gt *gt) > if (GRAPHICS_VER(gt->i915) < 11) > return false; > > - if (IS_MTL_GRAPHICS_STEP(gt->i915, M, STEP_A0, STEP_B0)) > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0)) > return true; > > if (GRAPHICS_VER_FULL(gt->i915) >= IP_VER(12, 70)) > diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c > index 80d67e487b55..e2562b0e540d 100644 > --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c > +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c > @@ -808,24 +808,24 @@ static void dg2_ctx_workarounds_init(struct intel_engine_cs *engine, > static void xelpg_ctx_gt_tuning_init(struct intel_engine_cs *engine, > struct i915_wa_list *wal) > { > - struct drm_i915_private *i915 = engine->i915; > + struct intel_gt *gt = engine->gt; > > dg2_ctx_gt_tuning_init(engine, wal); > > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_B0, STEP_FOREVER) || > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_B0, STEP_FOREVER)) > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_B0, STEP_FOREVER) || > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_B0, STEP_FOREVER)) > wa_add(wal, DRAW_WATERMARK, VERT_WM_VAL, 0x3FF, 0, false); > } > > static void xelpg_ctx_workarounds_init(struct intel_engine_cs *engine, > struct i915_wa_list *wal) > { > - struct drm_i915_private *i915 = engine->i915; > + struct intel_gt *gt = engine->gt; > > xelpg_ctx_gt_tuning_init(engine, wal); > > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) { > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) { > /* Wa_14014947963 */ > wa_masked_field_set(wal, VF_PREEMPTION, > PREEMPTION_VERTEX_COUNT, 0x4000); > @@ -1747,8 +1747,8 @@ xelpg_gt_workarounds_init(struct intel_gt *gt, struct i915_wa_list *wal) > /* Wa_22016670082 */ > wa_write_or(wal, GEN12_SQCNT1, GEN12_STRICT_RAR_ENABLE); > > - if (IS_MTL_GRAPHICS_STEP(gt->i915, M, STEP_A0, STEP_B0) || > - IS_MTL_GRAPHICS_STEP(gt->i915, P, STEP_A0, STEP_B0)) { > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) { > /* Wa_14014830051 */ > wa_mcr_write_clr(wal, SARB_CHICKEN1, COMP_CKN_IN); > > @@ -2425,16 +2425,17 @@ static void > rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal) > { > struct drm_i915_private *i915 = engine->i915; > + struct intel_gt *gt = engine->gt; > > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) { > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) { > /* Wa_22014600077 */ > wa_mcr_masked_en(wal, GEN10_CACHE_MODE_SS, > ENABLE_EU_COUNT_FOR_TDL_FLUSH); > } > > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0) || > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0) || > IS_DG2_GRAPHICS_STEP(i915, G10, STEP_B0, STEP_FOREVER) || > IS_DG2_G11(i915) || IS_DG2_G12(i915)) { > /* Wa_1509727124 */ > @@ -2444,7 +2445,7 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal) > > if (IS_DG2_GRAPHICS_STEP(i915, G10, STEP_B0, STEP_FOREVER) || > IS_DG2_G11(i915) || IS_DG2_G12(i915) || > - IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0)) { > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0)) { > /* Wa_22012856258 */ > wa_mcr_masked_en(wal, GEN8_ROW_CHICKEN2, > GEN12_DISABLE_READ_SUPPRESSION); > @@ -3009,8 +3010,9 @@ static void > general_render_compute_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal) > { > struct drm_i915_private *i915 = engine->i915; > + struct intel_gt *gt = engine->gt; > > - add_render_compute_tuning_settings(engine->gt, wal); > + add_render_compute_tuning_settings(gt, wal); > > if (GRAPHICS_VER(i915) >= 11) { > /* This is not a Wa (although referred to as > @@ -3031,13 +3033,13 @@ general_render_compute_wa_init(struct intel_engine_cs *engine, struct i915_wa_li > GEN11_INDIRECT_STATE_BASE_ADDR_OVERRIDE); > } > > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_B0, STEP_FOREVER) || > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_B0, STEP_FOREVER)) > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_B0, STEP_FOREVER) || > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_B0, STEP_FOREVER)) > /* Wa_14017856879 */ > wa_mcr_masked_en(wal, GEN9_ROW_CHICKEN3, MTL_DISABLE_FIX_FOR_EOT_FLUSH); > > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) > /* > * Wa_14017066071 > * Wa_14017654203 > @@ -3045,13 +3047,13 @@ general_render_compute_wa_init(struct intel_engine_cs *engine, struct i915_wa_li > wa_mcr_masked_en(wal, GEN10_SAMPLER_MODE, > MTL_DISABLE_SAMPLER_SC_OOO); > > - if (IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) > /* Wa_22015279794 */ > wa_mcr_masked_en(wal, GEN10_CACHE_MODE_SS, > DISABLE_PREFETCH_INTO_IC); > > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0) || > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0) || > IS_DG2_GRAPHICS_STEP(i915, G10, STEP_B0, STEP_FOREVER) || > IS_DG2_G11(i915) || IS_DG2_G12(i915)) { > /* Wa_22013037850 */ > @@ -3059,16 +3061,16 @@ general_render_compute_wa_init(struct intel_engine_cs *engine, struct i915_wa_li > DISABLE_128B_EVICTION_COMMAND_UDW); > } > > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0) || > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0) || > IS_PONTEVECCHIO(i915) || > IS_DG2(i915)) { > /* Wa_22014226127 */ > wa_mcr_write_or(wal, LSC_CHICKEN_BIT_0, DISABLE_D8_D16_COASLESCE); > } > > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0) || > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0) || > IS_DG2(i915)) { > /* Wa_18017747507 */ > wa_masked_en(wal, VFG_PREEMPTION_CHICKEN, POLYGON_TRIFAN_LINELOOP_DISABLE); > diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc.c > index 22649831d3bd..6687cdf0272b 100644 > --- a/drivers/gpu/drm/i915/gt/uc/intel_guc.c > +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.c > @@ -277,7 +277,7 @@ static u32 guc_ctl_wa_flags(struct intel_guc *guc) > flags |= GUC_WA_GAM_CREDITS; > > /* Wa_14014475959 */ > - if (IS_MTL_GRAPHICS_STEP(gt->i915, M, STEP_A0, STEP_B0) || > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > IS_DG2(gt->i915)) > flags |= GUC_WA_HOLD_CCS_SWITCHOUT; > > diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c > index 1bd5d8f7c40b..b2150a962f69 100644 > --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c > +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c > @@ -4265,7 +4265,7 @@ static void guc_default_vfuncs(struct intel_engine_cs *engine) > > /* Wa_14014475959:dg2 */ > if (engine->class == COMPUTE_CLASS) > - if (IS_MTL_GRAPHICS_STEP(engine->i915, M, STEP_A0, STEP_B0) || > + if (IS_GFX_GT_IP_STEP(engine->gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > IS_DG2(engine->i915)) > engine->flags |= I915_ENGINE_USES_WA_HOLD_CCS_SWITCHOUT; > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index 7a8ce7239bc9..e0e0493d6c1f 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -658,10 +658,6 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915, > #define IS_XEHPSDV_GRAPHICS_STEP(__i915, since, until) \ > (IS_XEHPSDV(__i915) && IS_GRAPHICS_STEP(__i915, since, until)) > > -#define IS_MTL_GRAPHICS_STEP(__i915, variant, since, until) \ > - (IS_SUBPLATFORM(__i915, INTEL_METEORLAKE, INTEL_SUBPLATFORM_##variant) && \ > - IS_GRAPHICS_STEP(__i915, since, until)) > - > #define IS_MTL_DISPLAY_STEP(__i915, since, until) \ > (IS_METEORLAKE(__i915) && \ > IS_DISPLAY_STEP(__i915, since, until)) -- Jani Nikula, Intel Open Source Graphics Center ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Intel-gfx] [PATCH v3 4/9] drm/i915: Eliminate IS_MTL_GRAPHICS_STEP 2023-08-11 7:32 ` Jani Nikula @ 2023-08-11 18:02 ` Matt Roper 2023-08-14 10:25 ` Jani Nikula 0 siblings, 1 reply; 17+ messages in thread From: Matt Roper @ 2023-08-11 18:02 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx On Fri, Aug 11, 2023 at 10:32:14AM +0300, Jani Nikula wrote: > On Thu, 10 Aug 2023, Matt Roper <matthew.d.roper@intel.com> wrote: > > Several workarounds are guarded by IS_MTL_GRAPHICS_STEP. However none > > of these workarounds are actually tied to MTL as a platform; they only > > relate to the Xe_LPG graphics IP, regardless of what platform it appears > > in. At the moment MTL is the only platform that uses Xe_LPG with IP > > versions 12.70 and 12.71, but we can't count on this being true in the > > future. Switch these to use a new IS_GFX_GT_IP_STEP() macro instead > > that is purely based on IP version. IS_GFX_GT_IP_STEP() is also > > GT-based rather than device-based, which will help prevent mistakes > > where we accidentally try to apply Xe_LPG graphics workarounds to the > > Xe_LPM+ media GT and vice-versa. > > > > v2: > > - Switch to a more generic and shorter IS_GT_IP_STEP macro that can be > > used for both graphics and media IP (and any other kind of GTs that > > show up in the future). > > v3: > > - Switch back to long-form IS_GFX_GT_IP_STEP macro. (Jani) > > - Move macro to intel_gt.h. (Andi) > > > > Cc: Gustavo Sousa <gustavo.sousa@intel.com> > > Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> > > Cc: Andi Shyti <andi.shyti@linux.intel.com> > > Cc: Jani Nikula <jani.nikula@linux.intel.com> > > Signed-off-by: Matt Roper <matthew.d.roper@intel.com> > > --- > > .../drm/i915/display/skl_universal_plane.c | 5 +- > > drivers/gpu/drm/i915/gt/gen8_engine_cs.c | 11 ++-- > > drivers/gpu/drm/i915/gt/intel_gt.h | 20 +++++++ > > drivers/gpu/drm/i915/gt/intel_gt_mcr.c | 7 ++- > > drivers/gpu/drm/i915/gt/intel_lrc.c | 4 +- > > drivers/gpu/drm/i915/gt/intel_reset.c | 2 +- > > drivers/gpu/drm/i915/gt/intel_workarounds.c | 52 ++++++++++--------- > > drivers/gpu/drm/i915/gt/uc/intel_guc.c | 2 +- > > .../gpu/drm/i915/gt/uc/intel_guc_submission.c | 2 +- > > drivers/gpu/drm/i915/i915_drv.h | 4 -- > > 10 files changed, 64 insertions(+), 45 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c > > index ffc15d278a39..d557ecd4e1eb 100644 > > --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c > > +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c > > @@ -20,6 +20,7 @@ > > #include "skl_scaler.h" > > #include "skl_universal_plane.h" > > #include "skl_watermark.h" > > +#include "gt/intel_gt.h" > > #include "pxp/intel_pxp.h" > > > > static const u32 skl_plane_formats[] = { > > @@ -2169,8 +2170,8 @@ static bool skl_plane_has_rc_ccs(struct drm_i915_private *i915, > > enum pipe pipe, enum plane_id plane_id) > > { > > /* Wa_14017240301 */ > > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || > > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) > > + if (IS_GFX_GT_IP_STEP(to_gt(i915), IP_VER(12, 70), STEP_A0, STEP_B0) || > > + IS_GFX_GT_IP_STEP(to_gt(i915), IP_VER(12, 71), STEP_A0, STEP_B0)) > > return false; > > > > /* Wa_22011186057 */ > > diff --git a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c > > index a4ff55aa5e55..6187b25b67ab 100644 > > --- a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c > > +++ b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c > > @@ -4,9 +4,9 @@ > > */ > > > > #include "gen8_engine_cs.h" > > -#include "i915_drv.h" > > #include "intel_engine_regs.h" > > #include "intel_gpu_commands.h" > > +#include "intel_gt.h" > > #include "intel_lrc.h" > > #include "intel_ring.h" > > > > @@ -226,8 +226,8 @@ u32 *gen12_emit_aux_table_inv(struct intel_engine_cs *engine, u32 *cs) > > static int mtl_dummy_pipe_control(struct i915_request *rq) > > { > > /* Wa_14016712196 */ > > - if (IS_MTL_GRAPHICS_STEP(rq->i915, M, STEP_A0, STEP_B0) || > > - IS_MTL_GRAPHICS_STEP(rq->i915, P, STEP_A0, STEP_B0)) { > > + if (IS_GFX_GT_IP_STEP(rq->engine->gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > > + IS_GFX_GT_IP_STEP(rq->engine->gt, IP_VER(12, 71), STEP_A0, STEP_B0)) { > > u32 *cs; > > > > /* dummy PIPE_CONTROL + depth flush */ > > @@ -799,6 +799,7 @@ u32 *gen12_emit_fini_breadcrumb_xcs(struct i915_request *rq, u32 *cs) > > u32 *gen12_emit_fini_breadcrumb_rcs(struct i915_request *rq, u32 *cs) > > { > > struct drm_i915_private *i915 = rq->i915; > > + struct intel_gt *gt = rq->engine->gt; > > u32 flags = (PIPE_CONTROL_CS_STALL | > > PIPE_CONTROL_TLB_INVALIDATE | > > PIPE_CONTROL_TILE_CACHE_FLUSH | > > @@ -809,8 +810,8 @@ u32 *gen12_emit_fini_breadcrumb_rcs(struct i915_request *rq, u32 *cs) > > PIPE_CONTROL_FLUSH_ENABLE); > > > > /* Wa_14016712196 */ > > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || > > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) > > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) > > /* dummy PIPE_CONTROL + depth flush */ > > cs = gen12_emit_pipe_control(cs, 0, > > PIPE_CONTROL_DEPTH_CACHE_FLUSH, 0); > > diff --git a/drivers/gpu/drm/i915/gt/intel_gt.h b/drivers/gpu/drm/i915/gt/intel_gt.h > > index 7649a46a36cc..de1bb04c864a 100644 > > --- a/drivers/gpu/drm/i915/gt/intel_gt.h > > +++ b/drivers/gpu/drm/i915/gt/intel_gt.h > > @@ -25,6 +25,26 @@ struct drm_printer; > > GRAPHICS_VER_FULL((gt)->i915) >= (from) && \ > > GRAPHICS_VER_FULL((gt)->i915) <= (until))) > > > > +/* > > + * Check that the GT is a graphics GT with a specific IP version and has > > + * a stepping in the range [begin, fixed). The lower stepping bound is > > + * inclusive, the upper bound is exclusive (corresponding to the first hardware > > + * stepping at which the workaround is no longer needed). E.g., > > + * > > + * IS_GFX_GT_IP_STEP(GFX, IP_VER(12, 70), STEP_A0, STEP_B0) > > + * IS_GFX_GT_IP_STEP(GFX, IP_VER(12, 71), STEP_B1, STEP_FOREVER) > > + * > > + * "STEP_FOREVER" can be passed as the upper stepping bound for workarounds > > + * that have no "fixed" version for the specified IP version. > > + */ > > +#define IS_GFX_GT_IP_STEP(gt, ipver, begin, fixed) ( \ > > + BUILD_BUG_ON_ZERO((ipver) < IP_VER(2, 0)) + \ > > + BUILD_BUG_ON_ZERO((fixed) <= (begin)) + \ > > Why is == not okay? fixed == begin would be an empty set of steppings and should never happen (i.e., the first stepping where you need the WA is also the same stepping where you no longer need the WA). > > > + ((gt)->type != GT_MEDIA && \ > > + GRAPHICS_VER_FULL((gt)->i915) == (ipver) && \ > > + INTEL_GRAPHICS_STEP((gt)->i915) >= (begin) && \ > > + INTEL_GRAPHICS_STEP((gt)->i915) < (fixed))) > > + > > I'd keep using begin-end or from-until instead of begin-fixed. This > check should really agnostic about issues that get fixed. > > We have macros for checking step ranges, e.g. IS_GRAPHICS_STEP(i915, > since, util). They should be used instead of duplicating the > condition. And in the previous patch you added IS_GFX_GT_IP_RANGE() > which is also pretty much duplicated here? > > But the stepping check is really orthogonal from the other conditions. I > was hoping to replace the IS_MTL_GRAPHICS_STEP() and friends macros with > IS_METEORLAKE() && IS_GRAPHICS_STEP() combos, because there's nothing > that requires us to keep adding new macros for these. Part of the goal here is to stop from trying to combine the conditions manually because it's too error-prone, and the mistakes tend to slip by during code review as well. * Combining a version range with a stepping range is always a bug. * Using a version or version range without checking the GT type is a bug on all platforms going forward. Plus mixing a bunch of && and || conditions makes it easy for typos on the parentheses to cause hard-to-spot bugs. The macros here ensure that all the conditions that must be combined are always used together resulting in a simple || list where each item in the list corresponds to one entry in the WA database. Matt > > Of course, with the IP check there's no need to add new platform > specific macros... but is there a need to combine all these together? > > > BR, > Jani. > > > > > #define GT_TRACE(gt, fmt, ...) do { \ > > const struct intel_gt *gt__ __maybe_unused = (gt); \ > > GEM_TRACE("%s " fmt, dev_name(gt__->i915->drm.dev), \ > > diff --git a/drivers/gpu/drm/i915/gt/intel_gt_mcr.c b/drivers/gpu/drm/i915/gt/intel_gt_mcr.c > > index 0b414eae1683..11d181b1cc7a 100644 > > --- a/drivers/gpu/drm/i915/gt/intel_gt_mcr.c > > +++ b/drivers/gpu/drm/i915/gt/intel_gt_mcr.c > > @@ -3,8 +3,7 @@ > > * Copyright © 2022 Intel Corporation > > */ > > > > -#include "i915_drv.h" > > - > > +#include "intel_gt.h" > > #include "intel_gt_mcr.h" > > #include "intel_gt_print.h" > > #include "intel_gt_regs.h" > > @@ -166,8 +165,8 @@ void intel_gt_mcr_init(struct intel_gt *gt) > > gt->steering_table[OADDRM] = xelpmp_oaddrm_steering_table; > > } else if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 70)) { > > /* Wa_14016747170 */ > > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || > > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) > > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) > > fuse = REG_FIELD_GET(MTL_GT_L3_EXC_MASK, > > intel_uncore_read(gt->uncore, > > MTL_GT_ACTIVITY_FACTOR)); > > diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c > > index 957d0aeb0c02..1f0768652446 100644 > > --- a/drivers/gpu/drm/i915/gt/intel_lrc.c > > +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c > > @@ -1375,8 +1375,8 @@ gen12_emit_indirect_ctx_rcs(const struct intel_context *ce, u32 *cs) > > cs = gen12_emit_aux_table_inv(ce->engine, cs); > > > > /* Wa_16014892111 */ > > - if (IS_MTL_GRAPHICS_STEP(ce->engine->i915, M, STEP_A0, STEP_B0) || > > - IS_MTL_GRAPHICS_STEP(ce->engine->i915, P, STEP_A0, STEP_B0) || > > + if (IS_GFX_GT_IP_STEP(ce->engine->gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > > + IS_GFX_GT_IP_STEP(ce->engine->gt, IP_VER(12, 71), STEP_A0, STEP_B0) || > > IS_DG2(ce->engine->i915)) > > cs = dg2_emit_draw_watermark_setting(cs); > > > > diff --git a/drivers/gpu/drm/i915/gt/intel_reset.c b/drivers/gpu/drm/i915/gt/intel_reset.c > > index 1ff7b42521c9..fd6c22aeb670 100644 > > --- a/drivers/gpu/drm/i915/gt/intel_reset.c > > +++ b/drivers/gpu/drm/i915/gt/intel_reset.c > > @@ -1641,7 +1641,7 @@ bool intel_engine_reset_needs_wa_22011802037(struct intel_gt *gt) > > if (GRAPHICS_VER(gt->i915) < 11) > > return false; > > > > - if (IS_MTL_GRAPHICS_STEP(gt->i915, M, STEP_A0, STEP_B0)) > > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0)) > > return true; > > > > if (GRAPHICS_VER_FULL(gt->i915) >= IP_VER(12, 70)) > > diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c > > index 80d67e487b55..e2562b0e540d 100644 > > --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c > > +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c > > @@ -808,24 +808,24 @@ static void dg2_ctx_workarounds_init(struct intel_engine_cs *engine, > > static void xelpg_ctx_gt_tuning_init(struct intel_engine_cs *engine, > > struct i915_wa_list *wal) > > { > > - struct drm_i915_private *i915 = engine->i915; > > + struct intel_gt *gt = engine->gt; > > > > dg2_ctx_gt_tuning_init(engine, wal); > > > > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_B0, STEP_FOREVER) || > > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_B0, STEP_FOREVER)) > > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_B0, STEP_FOREVER) || > > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_B0, STEP_FOREVER)) > > wa_add(wal, DRAW_WATERMARK, VERT_WM_VAL, 0x3FF, 0, false); > > } > > > > static void xelpg_ctx_workarounds_init(struct intel_engine_cs *engine, > > struct i915_wa_list *wal) > > { > > - struct drm_i915_private *i915 = engine->i915; > > + struct intel_gt *gt = engine->gt; > > > > xelpg_ctx_gt_tuning_init(engine, wal); > > > > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || > > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) { > > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) { > > /* Wa_14014947963 */ > > wa_masked_field_set(wal, VF_PREEMPTION, > > PREEMPTION_VERTEX_COUNT, 0x4000); > > @@ -1747,8 +1747,8 @@ xelpg_gt_workarounds_init(struct intel_gt *gt, struct i915_wa_list *wal) > > /* Wa_22016670082 */ > > wa_write_or(wal, GEN12_SQCNT1, GEN12_STRICT_RAR_ENABLE); > > > > - if (IS_MTL_GRAPHICS_STEP(gt->i915, M, STEP_A0, STEP_B0) || > > - IS_MTL_GRAPHICS_STEP(gt->i915, P, STEP_A0, STEP_B0)) { > > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) { > > /* Wa_14014830051 */ > > wa_mcr_write_clr(wal, SARB_CHICKEN1, COMP_CKN_IN); > > > > @@ -2425,16 +2425,17 @@ static void > > rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal) > > { > > struct drm_i915_private *i915 = engine->i915; > > + struct intel_gt *gt = engine->gt; > > > > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || > > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) { > > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) { > > /* Wa_22014600077 */ > > wa_mcr_masked_en(wal, GEN10_CACHE_MODE_SS, > > ENABLE_EU_COUNT_FOR_TDL_FLUSH); > > } > > > > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || > > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0) || > > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0) || > > IS_DG2_GRAPHICS_STEP(i915, G10, STEP_B0, STEP_FOREVER) || > > IS_DG2_G11(i915) || IS_DG2_G12(i915)) { > > /* Wa_1509727124 */ > > @@ -2444,7 +2445,7 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal) > > > > if (IS_DG2_GRAPHICS_STEP(i915, G10, STEP_B0, STEP_FOREVER) || > > IS_DG2_G11(i915) || IS_DG2_G12(i915) || > > - IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0)) { > > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0)) { > > /* Wa_22012856258 */ > > wa_mcr_masked_en(wal, GEN8_ROW_CHICKEN2, > > GEN12_DISABLE_READ_SUPPRESSION); > > @@ -3009,8 +3010,9 @@ static void > > general_render_compute_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal) > > { > > struct drm_i915_private *i915 = engine->i915; > > + struct intel_gt *gt = engine->gt; > > > > - add_render_compute_tuning_settings(engine->gt, wal); > > + add_render_compute_tuning_settings(gt, wal); > > > > if (GRAPHICS_VER(i915) >= 11) { > > /* This is not a Wa (although referred to as > > @@ -3031,13 +3033,13 @@ general_render_compute_wa_init(struct intel_engine_cs *engine, struct i915_wa_li > > GEN11_INDIRECT_STATE_BASE_ADDR_OVERRIDE); > > } > > > > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_B0, STEP_FOREVER) || > > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_B0, STEP_FOREVER)) > > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_B0, STEP_FOREVER) || > > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_B0, STEP_FOREVER)) > > /* Wa_14017856879 */ > > wa_mcr_masked_en(wal, GEN9_ROW_CHICKEN3, MTL_DISABLE_FIX_FOR_EOT_FLUSH); > > > > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || > > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) > > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) > > /* > > * Wa_14017066071 > > * Wa_14017654203 > > @@ -3045,13 +3047,13 @@ general_render_compute_wa_init(struct intel_engine_cs *engine, struct i915_wa_li > > wa_mcr_masked_en(wal, GEN10_SAMPLER_MODE, > > MTL_DISABLE_SAMPLER_SC_OOO); > > > > - if (IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) > > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) > > /* Wa_22015279794 */ > > wa_mcr_masked_en(wal, GEN10_CACHE_MODE_SS, > > DISABLE_PREFETCH_INTO_IC); > > > > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || > > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0) || > > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0) || > > IS_DG2_GRAPHICS_STEP(i915, G10, STEP_B0, STEP_FOREVER) || > > IS_DG2_G11(i915) || IS_DG2_G12(i915)) { > > /* Wa_22013037850 */ > > @@ -3059,16 +3061,16 @@ general_render_compute_wa_init(struct intel_engine_cs *engine, struct i915_wa_li > > DISABLE_128B_EVICTION_COMMAND_UDW); > > } > > > > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || > > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0) || > > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0) || > > IS_PONTEVECCHIO(i915) || > > IS_DG2(i915)) { > > /* Wa_22014226127 */ > > wa_mcr_write_or(wal, LSC_CHICKEN_BIT_0, DISABLE_D8_D16_COASLESCE); > > } > > > > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || > > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0) || > > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0) || > > IS_DG2(i915)) { > > /* Wa_18017747507 */ > > wa_masked_en(wal, VFG_PREEMPTION_CHICKEN, POLYGON_TRIFAN_LINELOOP_DISABLE); > > diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc.c > > index 22649831d3bd..6687cdf0272b 100644 > > --- a/drivers/gpu/drm/i915/gt/uc/intel_guc.c > > +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.c > > @@ -277,7 +277,7 @@ static u32 guc_ctl_wa_flags(struct intel_guc *guc) > > flags |= GUC_WA_GAM_CREDITS; > > > > /* Wa_14014475959 */ > > - if (IS_MTL_GRAPHICS_STEP(gt->i915, M, STEP_A0, STEP_B0) || > > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > > IS_DG2(gt->i915)) > > flags |= GUC_WA_HOLD_CCS_SWITCHOUT; > > > > diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c > > index 1bd5d8f7c40b..b2150a962f69 100644 > > --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c > > +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c > > @@ -4265,7 +4265,7 @@ static void guc_default_vfuncs(struct intel_engine_cs *engine) > > > > /* Wa_14014475959:dg2 */ > > if (engine->class == COMPUTE_CLASS) > > - if (IS_MTL_GRAPHICS_STEP(engine->i915, M, STEP_A0, STEP_B0) || > > + if (IS_GFX_GT_IP_STEP(engine->gt, IP_VER(12, 70), STEP_A0, STEP_B0) || > > IS_DG2(engine->i915)) > > engine->flags |= I915_ENGINE_USES_WA_HOLD_CCS_SWITCHOUT; > > > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > > index 7a8ce7239bc9..e0e0493d6c1f 100644 > > --- a/drivers/gpu/drm/i915/i915_drv.h > > +++ b/drivers/gpu/drm/i915/i915_drv.h > > @@ -658,10 +658,6 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915, > > #define IS_XEHPSDV_GRAPHICS_STEP(__i915, since, until) \ > > (IS_XEHPSDV(__i915) && IS_GRAPHICS_STEP(__i915, since, until)) > > > > -#define IS_MTL_GRAPHICS_STEP(__i915, variant, since, until) \ > > - (IS_SUBPLATFORM(__i915, INTEL_METEORLAKE, INTEL_SUBPLATFORM_##variant) && \ > > - IS_GRAPHICS_STEP(__i915, since, until)) > > - > > #define IS_MTL_DISPLAY_STEP(__i915, since, until) \ > > (IS_METEORLAKE(__i915) && \ > > IS_DISPLAY_STEP(__i915, since, until)) > > -- > Jani Nikula, Intel Open Source Graphics Center -- Matt Roper Graphics Software Engineer Linux GPU Platform Enablement Intel Corporation ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Intel-gfx] [PATCH v3 4/9] drm/i915: Eliminate IS_MTL_GRAPHICS_STEP 2023-08-11 18:02 ` Matt Roper @ 2023-08-14 10:25 ` Jani Nikula 0 siblings, 0 replies; 17+ messages in thread From: Jani Nikula @ 2023-08-14 10:25 UTC (permalink / raw) To: Matt Roper; +Cc: intel-gfx On Fri, 11 Aug 2023, Matt Roper <matthew.d.roper@intel.com> wrote: > On Fri, Aug 11, 2023 at 10:32:14AM +0300, Jani Nikula wrote: >> On Thu, 10 Aug 2023, Matt Roper <matthew.d.roper@intel.com> wrote: >> > Several workarounds are guarded by IS_MTL_GRAPHICS_STEP. However none >> > of these workarounds are actually tied to MTL as a platform; they only >> > relate to the Xe_LPG graphics IP, regardless of what platform it appears >> > in. At the moment MTL is the only platform that uses Xe_LPG with IP >> > versions 12.70 and 12.71, but we can't count on this being true in the >> > future. Switch these to use a new IS_GFX_GT_IP_STEP() macro instead >> > that is purely based on IP version. IS_GFX_GT_IP_STEP() is also >> > GT-based rather than device-based, which will help prevent mistakes >> > where we accidentally try to apply Xe_LPG graphics workarounds to the >> > Xe_LPM+ media GT and vice-versa. >> > >> > v2: >> > - Switch to a more generic and shorter IS_GT_IP_STEP macro that can be >> > used for both graphics and media IP (and any other kind of GTs that >> > show up in the future). >> > v3: >> > - Switch back to long-form IS_GFX_GT_IP_STEP macro. (Jani) >> > - Move macro to intel_gt.h. (Andi) >> > >> > Cc: Gustavo Sousa <gustavo.sousa@intel.com> >> > Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> >> > Cc: Andi Shyti <andi.shyti@linux.intel.com> >> > Cc: Jani Nikula <jani.nikula@linux.intel.com> >> > Signed-off-by: Matt Roper <matthew.d.roper@intel.com> >> > --- >> > .../drm/i915/display/skl_universal_plane.c | 5 +- >> > drivers/gpu/drm/i915/gt/gen8_engine_cs.c | 11 ++-- >> > drivers/gpu/drm/i915/gt/intel_gt.h | 20 +++++++ >> > drivers/gpu/drm/i915/gt/intel_gt_mcr.c | 7 ++- >> > drivers/gpu/drm/i915/gt/intel_lrc.c | 4 +- >> > drivers/gpu/drm/i915/gt/intel_reset.c | 2 +- >> > drivers/gpu/drm/i915/gt/intel_workarounds.c | 52 ++++++++++--------- >> > drivers/gpu/drm/i915/gt/uc/intel_guc.c | 2 +- >> > .../gpu/drm/i915/gt/uc/intel_guc_submission.c | 2 +- >> > drivers/gpu/drm/i915/i915_drv.h | 4 -- >> > 10 files changed, 64 insertions(+), 45 deletions(-) >> > >> > diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c >> > index ffc15d278a39..d557ecd4e1eb 100644 >> > --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c >> > +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c >> > @@ -20,6 +20,7 @@ >> > #include "skl_scaler.h" >> > #include "skl_universal_plane.h" >> > #include "skl_watermark.h" >> > +#include "gt/intel_gt.h" >> > #include "pxp/intel_pxp.h" >> > >> > static const u32 skl_plane_formats[] = { >> > @@ -2169,8 +2170,8 @@ static bool skl_plane_has_rc_ccs(struct drm_i915_private *i915, >> > enum pipe pipe, enum plane_id plane_id) >> > { >> > /* Wa_14017240301 */ >> > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || >> > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) >> > + if (IS_GFX_GT_IP_STEP(to_gt(i915), IP_VER(12, 70), STEP_A0, STEP_B0) || >> > + IS_GFX_GT_IP_STEP(to_gt(i915), IP_VER(12, 71), STEP_A0, STEP_B0)) >> > return false; >> > >> > /* Wa_22011186057 */ >> > diff --git a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c >> > index a4ff55aa5e55..6187b25b67ab 100644 >> > --- a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c >> > +++ b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c >> > @@ -4,9 +4,9 @@ >> > */ >> > >> > #include "gen8_engine_cs.h" >> > -#include "i915_drv.h" >> > #include "intel_engine_regs.h" >> > #include "intel_gpu_commands.h" >> > +#include "intel_gt.h" >> > #include "intel_lrc.h" >> > #include "intel_ring.h" >> > >> > @@ -226,8 +226,8 @@ u32 *gen12_emit_aux_table_inv(struct intel_engine_cs *engine, u32 *cs) >> > static int mtl_dummy_pipe_control(struct i915_request *rq) >> > { >> > /* Wa_14016712196 */ >> > - if (IS_MTL_GRAPHICS_STEP(rq->i915, M, STEP_A0, STEP_B0) || >> > - IS_MTL_GRAPHICS_STEP(rq->i915, P, STEP_A0, STEP_B0)) { >> > + if (IS_GFX_GT_IP_STEP(rq->engine->gt, IP_VER(12, 70), STEP_A0, STEP_B0) || >> > + IS_GFX_GT_IP_STEP(rq->engine->gt, IP_VER(12, 71), STEP_A0, STEP_B0)) { >> > u32 *cs; >> > >> > /* dummy PIPE_CONTROL + depth flush */ >> > @@ -799,6 +799,7 @@ u32 *gen12_emit_fini_breadcrumb_xcs(struct i915_request *rq, u32 *cs) >> > u32 *gen12_emit_fini_breadcrumb_rcs(struct i915_request *rq, u32 *cs) >> > { >> > struct drm_i915_private *i915 = rq->i915; >> > + struct intel_gt *gt = rq->engine->gt; >> > u32 flags = (PIPE_CONTROL_CS_STALL | >> > PIPE_CONTROL_TLB_INVALIDATE | >> > PIPE_CONTROL_TILE_CACHE_FLUSH | >> > @@ -809,8 +810,8 @@ u32 *gen12_emit_fini_breadcrumb_rcs(struct i915_request *rq, u32 *cs) >> > PIPE_CONTROL_FLUSH_ENABLE); >> > >> > /* Wa_14016712196 */ >> > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || >> > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) >> > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || >> > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) >> > /* dummy PIPE_CONTROL + depth flush */ >> > cs = gen12_emit_pipe_control(cs, 0, >> > PIPE_CONTROL_DEPTH_CACHE_FLUSH, 0); >> > diff --git a/drivers/gpu/drm/i915/gt/intel_gt.h b/drivers/gpu/drm/i915/gt/intel_gt.h >> > index 7649a46a36cc..de1bb04c864a 100644 >> > --- a/drivers/gpu/drm/i915/gt/intel_gt.h >> > +++ b/drivers/gpu/drm/i915/gt/intel_gt.h >> > @@ -25,6 +25,26 @@ struct drm_printer; >> > GRAPHICS_VER_FULL((gt)->i915) >= (from) && \ >> > GRAPHICS_VER_FULL((gt)->i915) <= (until))) >> > >> > +/* >> > + * Check that the GT is a graphics GT with a specific IP version and has >> > + * a stepping in the range [begin, fixed). The lower stepping bound is >> > + * inclusive, the upper bound is exclusive (corresponding to the first hardware >> > + * stepping at which the workaround is no longer needed). E.g., >> > + * >> > + * IS_GFX_GT_IP_STEP(GFX, IP_VER(12, 70), STEP_A0, STEP_B0) >> > + * IS_GFX_GT_IP_STEP(GFX, IP_VER(12, 71), STEP_B1, STEP_FOREVER) >> > + * >> > + * "STEP_FOREVER" can be passed as the upper stepping bound for workarounds >> > + * that have no "fixed" version for the specified IP version. >> > + */ >> > +#define IS_GFX_GT_IP_STEP(gt, ipver, begin, fixed) ( \ >> > + BUILD_BUG_ON_ZERO((ipver) < IP_VER(2, 0)) + \ >> > + BUILD_BUG_ON_ZERO((fixed) <= (begin)) + \ >> >> Why is == not okay? > > fixed == begin would be an empty set of steppings and should never > happen (i.e., the first stepping where you need the WA is also the same > stepping where you no longer need the WA). Right. Probably should still get that check in the IS_*_STEP() macros, and reuse those here instead of open coding the same thing. > >> >> > + ((gt)->type != GT_MEDIA && \ >> > + GRAPHICS_VER_FULL((gt)->i915) == (ipver) && \ >> > + INTEL_GRAPHICS_STEP((gt)->i915) >= (begin) && \ >> > + INTEL_GRAPHICS_STEP((gt)->i915) < (fixed))) >> > + >> >> I'd keep using begin-end or from-until instead of begin-fixed. This >> check should really agnostic about issues that get fixed. >> >> We have macros for checking step ranges, e.g. IS_GRAPHICS_STEP(i915, >> since, util). They should be used instead of duplicating the >> condition. And in the previous patch you added IS_GFX_GT_IP_RANGE() >> which is also pretty much duplicated here? >> >> But the stepping check is really orthogonal from the other conditions. I >> was hoping to replace the IS_MTL_GRAPHICS_STEP() and friends macros with >> IS_METEORLAKE() && IS_GRAPHICS_STEP() combos, because there's nothing >> that requires us to keep adding new macros for these. > > Part of the goal here is to stop from trying to combine the conditions > manually because it's too error-prone, and the mistakes tend to slip by > during code review as well. > > * Combining a version range with a stepping range is always a bug. > * Using a version or version range without checking the GT type is a > bug on all platforms going forward. > > Plus mixing a bunch of && and || conditions makes it easy for typos on > the parentheses to cause hard-to-spot bugs. The macros here ensure that > all the conditions that must be combined are always used together > resulting in a simple || list where each item in the list corresponds to > one entry in the WA database. Fair enough. I'd still like to have the building blocks reused here too instead of open coding in several places. BR, Jani. > > > Matt > >> >> Of course, with the IP check there's no need to add new platform >> specific macros... but is there a need to combine all these together? >> >> >> BR, >> Jani. >> >> >> >> > #define GT_TRACE(gt, fmt, ...) do { \ >> > const struct intel_gt *gt__ __maybe_unused = (gt); \ >> > GEM_TRACE("%s " fmt, dev_name(gt__->i915->drm.dev), \ >> > diff --git a/drivers/gpu/drm/i915/gt/intel_gt_mcr.c b/drivers/gpu/drm/i915/gt/intel_gt_mcr.c >> > index 0b414eae1683..11d181b1cc7a 100644 >> > --- a/drivers/gpu/drm/i915/gt/intel_gt_mcr.c >> > +++ b/drivers/gpu/drm/i915/gt/intel_gt_mcr.c >> > @@ -3,8 +3,7 @@ >> > * Copyright © 2022 Intel Corporation >> > */ >> > >> > -#include "i915_drv.h" >> > - >> > +#include "intel_gt.h" >> > #include "intel_gt_mcr.h" >> > #include "intel_gt_print.h" >> > #include "intel_gt_regs.h" >> > @@ -166,8 +165,8 @@ void intel_gt_mcr_init(struct intel_gt *gt) >> > gt->steering_table[OADDRM] = xelpmp_oaddrm_steering_table; >> > } else if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 70)) { >> > /* Wa_14016747170 */ >> > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || >> > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) >> > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || >> > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) >> > fuse = REG_FIELD_GET(MTL_GT_L3_EXC_MASK, >> > intel_uncore_read(gt->uncore, >> > MTL_GT_ACTIVITY_FACTOR)); >> > diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c >> > index 957d0aeb0c02..1f0768652446 100644 >> > --- a/drivers/gpu/drm/i915/gt/intel_lrc.c >> > +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c >> > @@ -1375,8 +1375,8 @@ gen12_emit_indirect_ctx_rcs(const struct intel_context *ce, u32 *cs) >> > cs = gen12_emit_aux_table_inv(ce->engine, cs); >> > >> > /* Wa_16014892111 */ >> > - if (IS_MTL_GRAPHICS_STEP(ce->engine->i915, M, STEP_A0, STEP_B0) || >> > - IS_MTL_GRAPHICS_STEP(ce->engine->i915, P, STEP_A0, STEP_B0) || >> > + if (IS_GFX_GT_IP_STEP(ce->engine->gt, IP_VER(12, 70), STEP_A0, STEP_B0) || >> > + IS_GFX_GT_IP_STEP(ce->engine->gt, IP_VER(12, 71), STEP_A0, STEP_B0) || >> > IS_DG2(ce->engine->i915)) >> > cs = dg2_emit_draw_watermark_setting(cs); >> > >> > diff --git a/drivers/gpu/drm/i915/gt/intel_reset.c b/drivers/gpu/drm/i915/gt/intel_reset.c >> > index 1ff7b42521c9..fd6c22aeb670 100644 >> > --- a/drivers/gpu/drm/i915/gt/intel_reset.c >> > +++ b/drivers/gpu/drm/i915/gt/intel_reset.c >> > @@ -1641,7 +1641,7 @@ bool intel_engine_reset_needs_wa_22011802037(struct intel_gt *gt) >> > if (GRAPHICS_VER(gt->i915) < 11) >> > return false; >> > >> > - if (IS_MTL_GRAPHICS_STEP(gt->i915, M, STEP_A0, STEP_B0)) >> > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0)) >> > return true; >> > >> > if (GRAPHICS_VER_FULL(gt->i915) >= IP_VER(12, 70)) >> > diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c >> > index 80d67e487b55..e2562b0e540d 100644 >> > --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c >> > +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c >> > @@ -808,24 +808,24 @@ static void dg2_ctx_workarounds_init(struct intel_engine_cs *engine, >> > static void xelpg_ctx_gt_tuning_init(struct intel_engine_cs *engine, >> > struct i915_wa_list *wal) >> > { >> > - struct drm_i915_private *i915 = engine->i915; >> > + struct intel_gt *gt = engine->gt; >> > >> > dg2_ctx_gt_tuning_init(engine, wal); >> > >> > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_B0, STEP_FOREVER) || >> > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_B0, STEP_FOREVER)) >> > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_B0, STEP_FOREVER) || >> > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_B0, STEP_FOREVER)) >> > wa_add(wal, DRAW_WATERMARK, VERT_WM_VAL, 0x3FF, 0, false); >> > } >> > >> > static void xelpg_ctx_workarounds_init(struct intel_engine_cs *engine, >> > struct i915_wa_list *wal) >> > { >> > - struct drm_i915_private *i915 = engine->i915; >> > + struct intel_gt *gt = engine->gt; >> > >> > xelpg_ctx_gt_tuning_init(engine, wal); >> > >> > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || >> > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) { >> > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || >> > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) { >> > /* Wa_14014947963 */ >> > wa_masked_field_set(wal, VF_PREEMPTION, >> > PREEMPTION_VERTEX_COUNT, 0x4000); >> > @@ -1747,8 +1747,8 @@ xelpg_gt_workarounds_init(struct intel_gt *gt, struct i915_wa_list *wal) >> > /* Wa_22016670082 */ >> > wa_write_or(wal, GEN12_SQCNT1, GEN12_STRICT_RAR_ENABLE); >> > >> > - if (IS_MTL_GRAPHICS_STEP(gt->i915, M, STEP_A0, STEP_B0) || >> > - IS_MTL_GRAPHICS_STEP(gt->i915, P, STEP_A0, STEP_B0)) { >> > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || >> > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) { >> > /* Wa_14014830051 */ >> > wa_mcr_write_clr(wal, SARB_CHICKEN1, COMP_CKN_IN); >> > >> > @@ -2425,16 +2425,17 @@ static void >> > rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal) >> > { >> > struct drm_i915_private *i915 = engine->i915; >> > + struct intel_gt *gt = engine->gt; >> > >> > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || >> > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) { >> > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || >> > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) { >> > /* Wa_22014600077 */ >> > wa_mcr_masked_en(wal, GEN10_CACHE_MODE_SS, >> > ENABLE_EU_COUNT_FOR_TDL_FLUSH); >> > } >> > >> > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || >> > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0) || >> > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || >> > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0) || >> > IS_DG2_GRAPHICS_STEP(i915, G10, STEP_B0, STEP_FOREVER) || >> > IS_DG2_G11(i915) || IS_DG2_G12(i915)) { >> > /* Wa_1509727124 */ >> > @@ -2444,7 +2445,7 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal) >> > >> > if (IS_DG2_GRAPHICS_STEP(i915, G10, STEP_B0, STEP_FOREVER) || >> > IS_DG2_G11(i915) || IS_DG2_G12(i915) || >> > - IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0)) { >> > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0)) { >> > /* Wa_22012856258 */ >> > wa_mcr_masked_en(wal, GEN8_ROW_CHICKEN2, >> > GEN12_DISABLE_READ_SUPPRESSION); >> > @@ -3009,8 +3010,9 @@ static void >> > general_render_compute_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal) >> > { >> > struct drm_i915_private *i915 = engine->i915; >> > + struct intel_gt *gt = engine->gt; >> > >> > - add_render_compute_tuning_settings(engine->gt, wal); >> > + add_render_compute_tuning_settings(gt, wal); >> > >> > if (GRAPHICS_VER(i915) >= 11) { >> > /* This is not a Wa (although referred to as >> > @@ -3031,13 +3033,13 @@ general_render_compute_wa_init(struct intel_engine_cs *engine, struct i915_wa_li >> > GEN11_INDIRECT_STATE_BASE_ADDR_OVERRIDE); >> > } >> > >> > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_B0, STEP_FOREVER) || >> > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_B0, STEP_FOREVER)) >> > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_B0, STEP_FOREVER) || >> > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_B0, STEP_FOREVER)) >> > /* Wa_14017856879 */ >> > wa_mcr_masked_en(wal, GEN9_ROW_CHICKEN3, MTL_DISABLE_FIX_FOR_EOT_FLUSH); >> > >> > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || >> > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) >> > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || >> > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) >> > /* >> > * Wa_14017066071 >> > * Wa_14017654203 >> > @@ -3045,13 +3047,13 @@ general_render_compute_wa_init(struct intel_engine_cs *engine, struct i915_wa_li >> > wa_mcr_masked_en(wal, GEN10_SAMPLER_MODE, >> > MTL_DISABLE_SAMPLER_SC_OOO); >> > >> > - if (IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0)) >> > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0)) >> > /* Wa_22015279794 */ >> > wa_mcr_masked_en(wal, GEN10_CACHE_MODE_SS, >> > DISABLE_PREFETCH_INTO_IC); >> > >> > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || >> > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0) || >> > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || >> > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0) || >> > IS_DG2_GRAPHICS_STEP(i915, G10, STEP_B0, STEP_FOREVER) || >> > IS_DG2_G11(i915) || IS_DG2_G12(i915)) { >> > /* Wa_22013037850 */ >> > @@ -3059,16 +3061,16 @@ general_render_compute_wa_init(struct intel_engine_cs *engine, struct i915_wa_li >> > DISABLE_128B_EVICTION_COMMAND_UDW); >> > } >> > >> > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || >> > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0) || >> > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || >> > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0) || >> > IS_PONTEVECCHIO(i915) || >> > IS_DG2(i915)) { >> > /* Wa_22014226127 */ >> > wa_mcr_write_or(wal, LSC_CHICKEN_BIT_0, DISABLE_D8_D16_COASLESCE); >> > } >> > >> > - if (IS_MTL_GRAPHICS_STEP(i915, M, STEP_A0, STEP_B0) || >> > - IS_MTL_GRAPHICS_STEP(i915, P, STEP_A0, STEP_B0) || >> > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || >> > + IS_GFX_GT_IP_STEP(gt, IP_VER(12, 71), STEP_A0, STEP_B0) || >> > IS_DG2(i915)) { >> > /* Wa_18017747507 */ >> > wa_masked_en(wal, VFG_PREEMPTION_CHICKEN, POLYGON_TRIFAN_LINELOOP_DISABLE); >> > diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc.c >> > index 22649831d3bd..6687cdf0272b 100644 >> > --- a/drivers/gpu/drm/i915/gt/uc/intel_guc.c >> > +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.c >> > @@ -277,7 +277,7 @@ static u32 guc_ctl_wa_flags(struct intel_guc *guc) >> > flags |= GUC_WA_GAM_CREDITS; >> > >> > /* Wa_14014475959 */ >> > - if (IS_MTL_GRAPHICS_STEP(gt->i915, M, STEP_A0, STEP_B0) || >> > + if (IS_GFX_GT_IP_STEP(gt, IP_VER(12, 70), STEP_A0, STEP_B0) || >> > IS_DG2(gt->i915)) >> > flags |= GUC_WA_HOLD_CCS_SWITCHOUT; >> > >> > diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c >> > index 1bd5d8f7c40b..b2150a962f69 100644 >> > --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c >> > +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c >> > @@ -4265,7 +4265,7 @@ static void guc_default_vfuncs(struct intel_engine_cs *engine) >> > >> > /* Wa_14014475959:dg2 */ >> > if (engine->class == COMPUTE_CLASS) >> > - if (IS_MTL_GRAPHICS_STEP(engine->i915, M, STEP_A0, STEP_B0) || >> > + if (IS_GFX_GT_IP_STEP(engine->gt, IP_VER(12, 70), STEP_A0, STEP_B0) || >> > IS_DG2(engine->i915)) >> > engine->flags |= I915_ENGINE_USES_WA_HOLD_CCS_SWITCHOUT; >> > >> > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h >> > index 7a8ce7239bc9..e0e0493d6c1f 100644 >> > --- a/drivers/gpu/drm/i915/i915_drv.h >> > +++ b/drivers/gpu/drm/i915/i915_drv.h >> > @@ -658,10 +658,6 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915, >> > #define IS_XEHPSDV_GRAPHICS_STEP(__i915, since, until) \ >> > (IS_XEHPSDV(__i915) && IS_GRAPHICS_STEP(__i915, since, until)) >> > >> > -#define IS_MTL_GRAPHICS_STEP(__i915, variant, since, until) \ >> > - (IS_SUBPLATFORM(__i915, INTEL_METEORLAKE, INTEL_SUBPLATFORM_##variant) && \ >> > - IS_GRAPHICS_STEP(__i915, since, until)) >> > - >> > #define IS_MTL_DISPLAY_STEP(__i915, since, until) \ >> > (IS_METEORLAKE(__i915) && \ >> > IS_DISPLAY_STEP(__i915, since, until)) >> >> -- >> Jani Nikula, Intel Open Source Graphics Center -- Jani Nikula, Intel Open Source Graphics Center ^ permalink raw reply [flat|nested] 17+ messages in thread
* [Intel-gfx] [PATCH v3 5/9] drm/i915: Eliminate IS_MTL_MEDIA_STEP 2023-08-10 21:57 [Intel-gfx] [PATCH v3 0/9] Reduce MTL-specific platform checks Matt Roper ` (3 preceding siblings ...) 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 4/9] drm/i915: Eliminate IS_MTL_GRAPHICS_STEP Matt Roper @ 2023-08-10 21:57 ` Matt Roper 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 6/9] drm/i915: Eliminate IS_MTL_DISPLAY_STEP Matt Roper ` (7 subsequent siblings) 12 siblings, 0 replies; 17+ messages in thread From: Matt Roper @ 2023-08-10 21:57 UTC (permalink / raw) To: intel-gfx; +Cc: matthew.d.roper Stepping-specific media behavior shouldn't be tied to MTL as a platform, but rather specifically to the Xe_LPM+ IP. Future non-MTL platforms may re-use this IP and will need to follow the exact same logic and apply the same workarounds. IS_MTL_MEDIA_STEP() is dropped in favor of IS_MEDIA_GT_IP_STEP, which checks the media IP version associated with a specific IP and also ensures that we're operating on the media GT, not the primary GT. v2: - Switch to the IS_GT_IP_STEP macro. v3: - Switch back to long-form IS_MEDIA_GT_IP_STEP. (Jani) Cc: Jani Nikula <jani.nikula@linux.intel.com> Signed-off-by: Matt Roper <matthew.d.roper@intel.com> --- drivers/gpu/drm/i915/gt/intel_gt.h | 19 +++++++++++++++++++ drivers/gpu/drm/i915/gt/intel_rc6.c | 3 +-- drivers/gpu/drm/i915/i915_drv.h | 4 ---- drivers/gpu/drm/i915/i915_perf.c | 15 ++++----------- 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/intel_gt.h b/drivers/gpu/drm/i915/gt/intel_gt.h index de1bb04c864a..f051a41a6de1 100644 --- a/drivers/gpu/drm/i915/gt/intel_gt.h +++ b/drivers/gpu/drm/i915/gt/intel_gt.h @@ -45,6 +45,25 @@ struct drm_printer; INTEL_GRAPHICS_STEP((gt)->i915) >= (begin) && \ INTEL_GRAPHICS_STEP((gt)->i915) < (fixed))) +/* + * Check that the GT is a media GT with a specific IP version and has + * a stepping in the range [begin, fixed). The lower stepping bound is + * inclusive, the upper bound is exclusive (corresponding to the first hardware + * stepping at which the workaround is no longer needed). + * "STEP_FOREVER" can be passed as the upper stepping bound for workarounds + * that have no "fixed" version for the specified IP version. + * + * This macro may only be used to match on platforms that have a standalone + * media design (i.e., media version 13 or higher). + */ +#define IS_MEDIA_GT_IP_STEP(gt, ipver, begin, fixed) ( \ + BUILD_BUG_ON_ZERO((ipver) < IP_VER(13, 0)) + \ + BUILD_BUG_ON_ZERO((fixed) <= (begin)) + \ + ((gt)->type == GT_MEDIA && \ + MEDIA_VER_FULL((gt)->i915) == (ipver) && \ + INTEL_MEDIA_STEP((gt)->i915) >= begin && \ + INTEL_MEDIA_STEP((gt)->i915) < fixed)) + #define GT_TRACE(gt, fmt, ...) do { \ const struct intel_gt *gt__ __maybe_unused = (gt); \ GEM_TRACE("%s " fmt, dev_name(gt__->i915->drm.dev), \ diff --git a/drivers/gpu/drm/i915/gt/intel_rc6.c b/drivers/gpu/drm/i915/gt/intel_rc6.c index 58bb1c55294c..748b0c695072 100644 --- a/drivers/gpu/drm/i915/gt/intel_rc6.c +++ b/drivers/gpu/drm/i915/gt/intel_rc6.c @@ -526,8 +526,7 @@ static bool rc6_supported(struct intel_rc6 *rc6) return false; } - if (IS_MTL_MEDIA_STEP(gt->i915, STEP_A0, STEP_B0) && - gt->type == GT_MEDIA) { + if (IS_MEDIA_GT_IP_STEP(gt, IP_VER(13, 0), STEP_A0, STEP_B0)) { drm_notice(&i915->drm, "Media RC6 disabled on A step\n"); return false; diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index e0e0493d6c1f..42a86483c694 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -662,10 +662,6 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915, (IS_METEORLAKE(__i915) && \ IS_DISPLAY_STEP(__i915, since, until)) -#define IS_MTL_MEDIA_STEP(__i915, since, until) \ - (IS_METEORLAKE(__i915) && \ - IS_MEDIA_STEP(__i915, since, until)) - /* * DG2 hardware steppings are a bit unusual. The hardware design was forked to * create three variants (G10, G11, and G12) which each have distinct diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c index 04bc1f4a1115..2ef8addb0cfd 100644 --- a/drivers/gpu/drm/i915/i915_perf.c +++ b/drivers/gpu/drm/i915/i915_perf.c @@ -4223,7 +4223,7 @@ static int read_properties_unlocked(struct i915_perf *perf, * C6 disable in BIOS. Fail if Media C6 is enabled on steppings where OAM * does not work as expected. */ - if (IS_MTL_MEDIA_STEP(props->engine->i915, STEP_A0, STEP_C0) && + if (IS_MEDIA_GT_IP_STEP(props->engine->gt, IP_VER(13, 0), STEP_A0, STEP_C0) && props->engine->oa_group->type == TYPE_OAM && intel_check_bios_c6_setup(&props->engine->gt->rc6)) { drm_dbg(&perf->i915->drm, @@ -5332,16 +5332,9 @@ int i915_perf_ioctl_version(struct drm_i915_private *i915) * C6 disable in BIOS. If Media C6 is enabled in BIOS, return version 6 * to indicate that OA media is not supported. */ - if (IS_MTL_MEDIA_STEP(i915, STEP_A0, STEP_C0)) { - struct intel_gt *gt; - int i; - - for_each_gt(gt, i915, i) { - if (gt->type == GT_MEDIA && - intel_check_bios_c6_setup(>->rc6)) - return 6; - } - } + if (IS_MEDIA_GT_IP_STEP(i915->media_gt, IP_VER(13, 0), STEP_A0, STEP_C0) && + intel_check_bios_c6_setup(&i915->media_gt->rc6)) + return 6; return 7; } -- 2.41.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Intel-gfx] [PATCH v3 6/9] drm/i915: Eliminate IS_MTL_DISPLAY_STEP 2023-08-10 21:57 [Intel-gfx] [PATCH v3 0/9] Reduce MTL-specific platform checks Matt Roper ` (4 preceding siblings ...) 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 5/9] drm/i915: Eliminate IS_MTL_MEDIA_STEP Matt Roper @ 2023-08-10 21:57 ` Matt Roper 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 7/9] drm/i915/mtl: Eliminate subplatforms Matt Roper ` (6 subsequent siblings) 12 siblings, 0 replies; 17+ messages in thread From: Matt Roper @ 2023-08-10 21:57 UTC (permalink / raw) To: intel-gfx; +Cc: matthew.d.roper Stepping-specific display behavior shouldn't be tied to MTL as a platform, but rather specifically to the Xe_LPD+ IP. Future non-MTL platforms may re-use this IP and will need to follow the exact same logic and apply the same workarounds. IS_MTL_DISPLAY_STEP() is dropped in favor of a new macro IS_DISPLAY_IP_STEP() that only checks the display IP version. v2: - Rename macro to IS_DISPLAY_IP_STEP for consistency with the corresponding GT macro and handle steppings the same way. v3: - Drop the automatic "STEP_" pasting. Signed-off-by: Matt Roper <matthew.d.roper@intel.com> --- .../gpu/drm/i915/display/intel_display_device.h | 17 +++++++++++++++++ drivers/gpu/drm/i915/display/intel_fbc.c | 3 ++- drivers/gpu/drm/i915/display/intel_pmdemand.c | 2 +- drivers/gpu/drm/i915/display/intel_psr.c | 10 +++++----- drivers/gpu/drm/i915/i915_drv.h | 6 ++---- 5 files changed, 27 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_display_device.h b/drivers/gpu/drm/i915/display/intel_display_device.h index 215e682bd8b7..8c45b9409496 100644 --- a/drivers/gpu/drm/i915/display/intel_display_device.h +++ b/drivers/gpu/drm/i915/display/intel_display_device.h @@ -71,6 +71,23 @@ struct drm_printer; #define OVERLAY_NEEDS_PHYSICAL(i915) (DISPLAY_INFO(i915)->overlay_needs_physical) #define SUPPORTS_TV(i915) (DISPLAY_INFO(i915)->supports_tv) +/* + * Check if a device has a specific IP version as well as a stepping within + * the specified range [begin, fixed). The lower bound is inclusive, the upper + * bound is exclusive (corresponding to the first hardware stepping when the + * workaround is no longer needed). E.g., + * + * IS_DISPLAY_IP_STEP(GFX, IP_VER(14, 0), STEP_A0, STEP_B2) + * IS_DISPLAY_IP_STEP(GFX, IP_VER(14, 0), STEP_C0, STEP_FOREVER) + * + * "STEP_FOREVER" can be passed as the upper stepping bound for workarounds that + * have no upper bound on steppings of the specified IP version. + */ +#define IS_DISPLAY_IP_STEP(__i915, ipver, begin, fixed) \ + (BUILD_BUG_ON_ZERO((ipver) < IP_VER(2, 0)) + \ + DISPLAY_VER_FULL(__i915) == (ipver) && \ + IS_DISPLAY_STEP((__i915), (begin), (fixed))) + struct intel_display_runtime_info { struct { u16 ver; diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c index 25382022cd27..1c6d467cec26 100644 --- a/drivers/gpu/drm/i915/display/intel_fbc.c +++ b/drivers/gpu/drm/i915/display/intel_fbc.c @@ -50,6 +50,7 @@ #include "i915_vma.h" #include "intel_cdclk.h" #include "intel_de.h" +#include "intel_display_device.h" #include "intel_display_trace.h" #include "intel_display_types.h" #include "intel_fbc.h" @@ -1100,7 +1101,7 @@ static int intel_fbc_check_plane(struct intel_atomic_state *state, /* Wa_14016291713 */ if ((IS_DISPLAY_VER(i915, 12, 13) || - IS_MTL_DISPLAY_STEP(i915, STEP_A0, STEP_C0)) && + IS_DISPLAY_IP_STEP(i915, IP_VER(14, 0), STEP_A0, STEP_C0)) && crtc_state->has_psr) { plane_state->no_fbc_reason = "PSR1 enabled (Wa_14016291713)"; return 0; diff --git a/drivers/gpu/drm/i915/display/intel_pmdemand.c b/drivers/gpu/drm/i915/display/intel_pmdemand.c index f7608d363634..744e332fa2af 100644 --- a/drivers/gpu/drm/i915/display/intel_pmdemand.c +++ b/drivers/gpu/drm/i915/display/intel_pmdemand.c @@ -92,7 +92,7 @@ int intel_pmdemand_init(struct drm_i915_private *i915) &pmdemand_state->base, &intel_pmdemand_funcs); - if (IS_MTL_DISPLAY_STEP(i915, STEP_A0, STEP_C0)) + if (IS_DISPLAY_IP_STEP(i915, IP_VER(14, 0), STEP_A0, STEP_C0)) /* Wa_14016740474 */ intel_de_rmw(i915, XELPD_CHICKEN_DCPR_3, 0, DMD_RSP_TIMEOUT_DISABLE); diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c index 97d5eef10130..72887c29fb51 100644 --- a/drivers/gpu/drm/i915/display/intel_psr.c +++ b/drivers/gpu/drm/i915/display/intel_psr.c @@ -1360,7 +1360,7 @@ static void wm_optimization_wa(struct intel_dp *intel_dp, bool set_wa_bit = false; /* Wa_14015648006 */ - if (IS_MTL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0) || + if (IS_DISPLAY_IP_STEP(dev_priv, IP_VER(14, 0), STEP_A0, STEP_B0) || IS_DISPLAY_VER(dev_priv, 11, 13)) set_wa_bit |= crtc_state->wm_level_disabled; @@ -1447,7 +1447,7 @@ static void intel_psr_enable_source(struct intel_dp *intel_dp, * All supported adlp panels have 1-based X granularity, this may * cause issues if non-supported panels are used. */ - if (IS_MTL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0)) + if (IS_DISPLAY_IP_STEP(dev_priv, IP_VER(14, 0), STEP_A0, STEP_B0)) intel_de_rmw(dev_priv, MTL_CHICKEN_TRANS(cpu_transcoder), 0, ADLP_1_BASED_X_GRANULARITY); else if (IS_ALDERLAKE_P(dev_priv)) @@ -1455,7 +1455,7 @@ static void intel_psr_enable_source(struct intel_dp *intel_dp, ADLP_1_BASED_X_GRANULARITY); /* Wa_16012604467:adlp,mtl[a0,b0] */ - if (IS_MTL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0)) + if (IS_DISPLAY_IP_STEP(dev_priv, IP_VER(14, 0), STEP_A0, STEP_B0)) intel_de_rmw(dev_priv, MTL_CLKGATE_DIS_TRANS(cpu_transcoder), 0, MTL_CLKGATE_DIS_TRANS_DMASC_GATING_DIS); @@ -1613,7 +1613,7 @@ static void intel_psr_disable_locked(struct intel_dp *intel_dp) if (intel_dp->psr.psr2_enabled) { /* Wa_16012604467:adlp,mtl[a0,b0] */ - if (IS_MTL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0)) + if (IS_DISPLAY_IP_STEP(dev_priv, IP_VER(14, 0), STEP_A0, STEP_B0)) intel_de_rmw(dev_priv, MTL_CLKGATE_DIS_TRANS(cpu_transcoder), MTL_CLKGATE_DIS_TRANS_DMASC_GATING_DIS, 0); @@ -2087,7 +2087,7 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state, goto skip_sel_fetch_set_loop; /* Wa_14014971492 */ - if ((IS_MTL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0) || + if ((IS_DISPLAY_IP_STEP(dev_priv, IP_VER(14, 0), STEP_A0, STEP_B0) || IS_ALDERLAKE_P(dev_priv) || IS_TIGERLAKE(dev_priv)) && crtc_state->splitter.enable) pipe_clip.y1 = 0; diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 42a86483c694..b11810308e8a 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -437,6 +437,8 @@ static inline struct intel_gt *to_gt(struct drm_i915_private *i915) (MEDIA_VER(i915) >= (from) && MEDIA_VER(i915) <= (until)) #define DISPLAY_VER(i915) (DISPLAY_RUNTIME_INFO(i915)->ip.ver) +#define DISPLAY_VER_FULL(i915) IP_VER(DISPLAY_RUNTIME_INFO(i915)->ip.ver, \ + DISPLAY_RUNTIME_INFO(i915)->ip.rel) #define IS_DISPLAY_VER(i915, from, until) \ (DISPLAY_VER(i915) >= (from) && DISPLAY_VER(i915) <= (until)) @@ -658,10 +660,6 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915, #define IS_XEHPSDV_GRAPHICS_STEP(__i915, since, until) \ (IS_XEHPSDV(__i915) && IS_GRAPHICS_STEP(__i915, since, until)) -#define IS_MTL_DISPLAY_STEP(__i915, since, until) \ - (IS_METEORLAKE(__i915) && \ - IS_DISPLAY_STEP(__i915, since, until)) - /* * DG2 hardware steppings are a bit unusual. The hardware design was forked to * create three variants (G10, G11, and G12) which each have distinct -- 2.41.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Intel-gfx] [PATCH v3 7/9] drm/i915/mtl: Eliminate subplatforms 2023-08-10 21:57 [Intel-gfx] [PATCH v3 0/9] Reduce MTL-specific platform checks Matt Roper ` (5 preceding siblings ...) 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 6/9] drm/i915: Eliminate IS_MTL_DISPLAY_STEP Matt Roper @ 2023-08-10 21:57 ` Matt Roper 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 8/9] drm/i915/display: Eliminate IS_METEORLAKE checks Matt Roper ` (5 subsequent siblings) 12 siblings, 0 replies; 17+ messages in thread From: Matt Roper @ 2023-08-10 21:57 UTC (permalink / raw) To: intel-gfx; +Cc: matthew.d.roper Now that we properly match the Xe_LPG IP versions associated with various workarounds, there's no longer any need to define separate MTL subplatform in the driver. Nothing in the code is conditional on MTL-M or MTL-P base platforms. Furthermore, I'm not sure the "M" and "P" designations are even an accurate representation of which specific platforms would have which IP versions; those were mostly just placeholders from a long time ago. The reality is that the IP version present on a platform gets read from a fuse register at driver init; we shouldn't be trying to guess which IP is present based on PCI ID anymore. Signed-off-by: Matt Roper <matthew.d.roper@intel.com> Reviewed-by: Nemesa Garg <nemesa.garg@intel.com> Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com> --- drivers/gpu/drm/i915/i915_drv.h | 4 ---- drivers/gpu/drm/i915/intel_device_info.c | 14 -------------- drivers/gpu/drm/i915/intel_device_info.h | 4 ---- include/drm/i915_pciids.h | 11 +++-------- 4 files changed, 3 insertions(+), 30 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index b11810308e8a..6d91b3f78b5b 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -575,10 +575,6 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915, #define IS_PONTEVECCHIO(i915) IS_PLATFORM(i915, INTEL_PONTEVECCHIO) #define IS_METEORLAKE(i915) IS_PLATFORM(i915, INTEL_METEORLAKE) -#define IS_METEORLAKE_M(i915) \ - IS_SUBPLATFORM(i915, INTEL_METEORLAKE, INTEL_SUBPLATFORM_M) -#define IS_METEORLAKE_P(i915) \ - IS_SUBPLATFORM(i915, INTEL_METEORLAKE, INTEL_SUBPLATFORM_P) #define IS_DG2_G10(i915) \ IS_SUBPLATFORM(i915, INTEL_DG2, INTEL_SUBPLATFORM_G10) #define IS_DG2_G11(i915) \ diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c index ea0ec6174ce5..9dfa680a4c62 100644 --- a/drivers/gpu/drm/i915/intel_device_info.c +++ b/drivers/gpu/drm/i915/intel_device_info.c @@ -206,14 +206,6 @@ static const u16 subplatform_g12_ids[] = { INTEL_DG2_G12_IDS(0), }; -static const u16 subplatform_m_ids[] = { - INTEL_MTL_M_IDS(0), -}; - -static const u16 subplatform_p_ids[] = { - INTEL_MTL_P_IDS(0), -}; - static bool find_devid(u16 id, const u16 *p, unsigned int num) { for (; num; num--, p++) { @@ -275,12 +267,6 @@ static void intel_device_info_subplatform_init(struct drm_i915_private *i915) } else if (find_devid(devid, subplatform_g12_ids, ARRAY_SIZE(subplatform_g12_ids))) { mask = BIT(INTEL_SUBPLATFORM_G12); - } else if (find_devid(devid, subplatform_m_ids, - ARRAY_SIZE(subplatform_m_ids))) { - mask = BIT(INTEL_SUBPLATFORM_M); - } else if (find_devid(devid, subplatform_p_ids, - ARRAY_SIZE(subplatform_p_ids))) { - mask = BIT(INTEL_SUBPLATFORM_P); } GEM_BUG_ON(mask & ~INTEL_SUBPLATFORM_MASK); diff --git a/drivers/gpu/drm/i915/intel_device_info.h b/drivers/gpu/drm/i915/intel_device_info.h index dbfe6443457b..2ca54417d19b 100644 --- a/drivers/gpu/drm/i915/intel_device_info.h +++ b/drivers/gpu/drm/i915/intel_device_info.h @@ -129,10 +129,6 @@ enum intel_platform { #define INTEL_SUBPLATFORM_N 1 #define INTEL_SUBPLATFORM_RPLU 2 -/* MTL */ -#define INTEL_SUBPLATFORM_M 0 -#define INTEL_SUBPLATFORM_P 1 - enum intel_ppgtt_type { INTEL_PPGTT_NONE = I915_GEM_PPGTT_NONE, INTEL_PPGTT_ALIASING = I915_GEM_PPGTT_ALIASING, diff --git a/include/drm/i915_pciids.h b/include/drm/i915_pciids.h index e1e10dfbb661..38dae757d1a8 100644 --- a/include/drm/i915_pciids.h +++ b/include/drm/i915_pciids.h @@ -738,18 +738,13 @@ #define INTEL_ATS_M_IDS(info) \ INTEL_ATS_M150_IDS(info), \ INTEL_ATS_M75_IDS(info) + /* MTL */ -#define INTEL_MTL_M_IDS(info) \ +#define INTEL_MTL_IDS(info) \ INTEL_VGA_DEVICE(0x7D40, info), \ - INTEL_VGA_DEVICE(0x7D60, info) - -#define INTEL_MTL_P_IDS(info) \ INTEL_VGA_DEVICE(0x7D45, info), \ INTEL_VGA_DEVICE(0x7D55, info), \ + INTEL_VGA_DEVICE(0x7D60, info), \ INTEL_VGA_DEVICE(0x7DD5, info) -#define INTEL_MTL_IDS(info) \ - INTEL_MTL_M_IDS(info), \ - INTEL_MTL_P_IDS(info) - #endif /* _I915_PCIIDS_H */ -- 2.41.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Intel-gfx] [PATCH v3 8/9] drm/i915/display: Eliminate IS_METEORLAKE checks 2023-08-10 21:57 [Intel-gfx] [PATCH v3 0/9] Reduce MTL-specific platform checks Matt Roper ` (6 preceding siblings ...) 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 7/9] drm/i915/mtl: Eliminate subplatforms Matt Roper @ 2023-08-10 21:57 ` Matt Roper 2023-08-10 21:58 ` [Intel-gfx] [PATCH v3 9/9] drm/i915: Replace several IS_METEORLAKE with proper IP version checks Matt Roper ` (4 subsequent siblings) 12 siblings, 0 replies; 17+ messages in thread From: Matt Roper @ 2023-08-10 21:57 UTC (permalink / raw) To: intel-gfx; +Cc: matthew.d.roper Most of the IS_METEORLAKE checks in the display code shouldn't actually be tied to MTL as a platform, but rather to the Xe_LPD+ display IP (which is used in MTL, but may show up again in future platforms). In cases where we're trying to match that specific IP, use a version check against IP_VER(14, 0). For cases where we're just handling new behavior introduced by this IP (but which may also be inherited by future IP as well), use a ver >= 14 check. The one exception here is the stolen memory workaround Wa_13010847436 (which is mislabelled as "Wa_22018444074" in the code). That's truly a MTL-specific issue rather than being tied to any of the IP blocks, so leaving the condition as IS_METEORLAKE is correct there. v2: - cdclk check should be >=, not >. (Gustavo) Signed-off-by: Matt Roper <matthew.d.roper@intel.com> Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com> --- drivers/gpu/drm/i915/display/intel_cdclk.c | 4 ++-- drivers/gpu/drm/i915/display/intel_cx0_phy.c | 2 +- drivers/gpu/drm/i915/display/intel_display.c | 2 +- drivers/gpu/drm/i915/display/intel_dmc.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c index 2fb030b1ff1d..b0b9a6fbb786 100644 --- a/drivers/gpu/drm/i915/display/intel_cdclk.c +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c @@ -1840,7 +1840,7 @@ static bool cdclk_compute_crawl_and_squash_midpoint(struct drm_i915_private *i91 static bool pll_enable_wa_needed(struct drm_i915_private *dev_priv) { - return ((IS_DG2(dev_priv) || IS_METEORLAKE(dev_priv)) && + return ((IS_DG2(dev_priv) || DISPLAY_VER_FULL(dev_priv) == IP_VER(14, 0)) && dev_priv->display.cdclk.hw.vco > 0 && HAS_CDCLK_SQUASH(dev_priv)); } @@ -3559,7 +3559,7 @@ static const struct intel_cdclk_funcs i830_cdclk_funcs = { */ void intel_init_cdclk_hooks(struct drm_i915_private *dev_priv) { - if (IS_METEORLAKE(dev_priv)) { + if (DISPLAY_VER(dev_priv) >= 14) { dev_priv->display.funcs.cdclk = &mtl_cdclk_funcs; dev_priv->display.cdclk.table = mtl_cdclk_table; } else if (IS_DG2(dev_priv)) { diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.c b/drivers/gpu/drm/i915/display/intel_cx0_phy.c index 1b00ef2c6185..a42b3c4c0ed7 100644 --- a/drivers/gpu/drm/i915/display/intel_cx0_phy.c +++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.c @@ -31,7 +31,7 @@ bool intel_is_c10phy(struct drm_i915_private *i915, enum phy phy) { - if (IS_METEORLAKE(i915) && (phy < PHY_C)) + if (DISPLAY_VER_FULL(i915) == IP_VER(14, 0) && phy < PHY_C) return true; return false; diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index 763ab569d8f3..462917787361 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -1767,7 +1767,7 @@ bool intel_phy_is_tc(struct drm_i915_private *dev_priv, enum phy phy) if (IS_DG2(dev_priv)) /* DG2's "TC1" output uses a SNPS PHY */ return false; - else if (IS_ALDERLAKE_P(dev_priv) || IS_METEORLAKE(dev_priv)) + else if (IS_ALDERLAKE_P(dev_priv) || DISPLAY_VER_FULL(dev_priv) == IP_VER(14, 0)) return phy >= PHY_F && phy <= PHY_I; else if (IS_TIGERLAKE(dev_priv)) return phy >= PHY_D && phy <= PHY_I; diff --git a/drivers/gpu/drm/i915/display/intel_dmc.c b/drivers/gpu/drm/i915/display/intel_dmc.c index 5f479f3828bb..1623c0c5e8a1 100644 --- a/drivers/gpu/drm/i915/display/intel_dmc.c +++ b/drivers/gpu/drm/i915/display/intel_dmc.c @@ -998,7 +998,7 @@ void intel_dmc_init(struct drm_i915_private *i915) INIT_WORK(&dmc->work, dmc_load_work_fn); - if (IS_METEORLAKE(i915)) { + if (DISPLAY_VER_FULL(i915) == IP_VER(14, 0)) { dmc->fw_path = MTL_DMC_PATH; dmc->max_fw_size = XELPDP_DMC_MAX_FW_SIZE; } else if (IS_DG2(i915)) { -- 2.41.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Intel-gfx] [PATCH v3 9/9] drm/i915: Replace several IS_METEORLAKE with proper IP version checks 2023-08-10 21:57 [Intel-gfx] [PATCH v3 0/9] Reduce MTL-specific platform checks Matt Roper ` (7 preceding siblings ...) 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 8/9] drm/i915/display: Eliminate IS_METEORLAKE checks Matt Roper @ 2023-08-10 21:58 ` Matt Roper 2023-08-11 1:45 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Reduce MTL-specific platform checks (rev3) Patchwork ` (3 subsequent siblings) 12 siblings, 0 replies; 17+ messages in thread From: Matt Roper @ 2023-08-10 21:58 UTC (permalink / raw) To: intel-gfx; +Cc: matthew.d.roper Many of the IS_METEORLAKE conditions throughout the driver are supposed to be checks for Xe_LPG and/or Xe_LPM+ IP, not for the MTL platform specifically. Update those checks to ensure that the code will still operate properly if/when these IP versions show up on future platforms. v2: - Update two more conditions (one for pg_enable, one for MTL HuC compatibility). Signed-off-by: Matt Roper <matthew.d.roper@intel.com> --- drivers/gpu/drm/i915/gem/i915_gem_create.c | 4 ++-- drivers/gpu/drm/i915/gt/intel_engine_pm.c | 2 +- drivers/gpu/drm/i915/gt/intel_mocs.c | 2 +- drivers/gpu/drm/i915/gt/intel_rc6.c | 2 +- drivers/gpu/drm/i915/gt/intel_reset.c | 2 +- drivers/gpu/drm/i915/gt/intel_rps.c | 2 +- drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 3 ++- drivers/gpu/drm/i915/i915_debugfs.c | 2 +- drivers/gpu/drm/i915/i915_perf.c | 8 +++++--- 9 files changed, 15 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_create.c b/drivers/gpu/drm/i915/gem/i915_gem_create.c index d24c0ce8805c..19156ba4b9ef 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_create.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_create.c @@ -405,8 +405,8 @@ static int ext_set_pat(struct i915_user_extension __user *base, void *data) BUILD_BUG_ON(sizeof(struct drm_i915_gem_create_ext_set_pat) != offsetofend(struct drm_i915_gem_create_ext_set_pat, rsvd)); - /* Limiting the extension only to Meteor Lake */ - if (!IS_METEORLAKE(i915)) + /* Limiting the extension only to Xe_LPG and beyond */ + if (GRAPHICS_VER_FULL(i915) < IP_VER(12, 70)) return -ENODEV; if (copy_from_user(&ext, base, sizeof(ext))) diff --git a/drivers/gpu/drm/i915/gt/intel_engine_pm.c b/drivers/gpu/drm/i915/gt/intel_engine_pm.c index b538b5c04948..e91fc881dbf1 100644 --- a/drivers/gpu/drm/i915/gt/intel_engine_pm.c +++ b/drivers/gpu/drm/i915/gt/intel_engine_pm.c @@ -21,7 +21,7 @@ static void intel_gsc_idle_msg_enable(struct intel_engine_cs *engine) { struct drm_i915_private *i915 = engine->i915; - if (IS_METEORLAKE(i915) && engine->id == GSC0) { + if (MEDIA_VER(i915) >= 13 && engine->id == GSC0) { intel_uncore_write(engine->gt->uncore, RC_PSMI_CTRL_GSCCS, _MASKED_BIT_DISABLE(IDLE_MSG_DISABLE)); diff --git a/drivers/gpu/drm/i915/gt/intel_mocs.c b/drivers/gpu/drm/i915/gt/intel_mocs.c index 2c014407225c..a2d8a271fe68 100644 --- a/drivers/gpu/drm/i915/gt/intel_mocs.c +++ b/drivers/gpu/drm/i915/gt/intel_mocs.c @@ -507,7 +507,7 @@ static unsigned int get_mocs_settings(const struct drm_i915_private *i915, memset(table, 0, sizeof(struct drm_i915_mocs_table)); table->unused_entries_index = I915_MOCS_PTE; - if (IS_METEORLAKE(i915)) { + if (IS_GFX_GT_IP_RANGE(&i915->gt0, IP_VER(12, 70), IP_VER(12, 71))) { table->size = ARRAY_SIZE(mtl_mocs_table); table->table = mtl_mocs_table; table->n_entries = MTL_NUM_MOCS_ENTRIES; diff --git a/drivers/gpu/drm/i915/gt/intel_rc6.c b/drivers/gpu/drm/i915/gt/intel_rc6.c index 748b0c695072..a5d725508c77 100644 --- a/drivers/gpu/drm/i915/gt/intel_rc6.c +++ b/drivers/gpu/drm/i915/gt/intel_rc6.c @@ -123,7 +123,7 @@ static void gen11_rc6_enable(struct intel_rc6 *rc6) * temporary wa and should be removed after fixing real cause * of forcewake timeouts. */ - if (IS_METEORLAKE(gt->i915) || + if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 71)) || IS_DG2_GRAPHICS_STEP(gt->i915, G10, STEP_A0, STEP_C0) || IS_DG2_GRAPHICS_STEP(gt->i915, G11, STEP_A0, STEP_B0)) pg_enable = diff --git a/drivers/gpu/drm/i915/gt/intel_reset.c b/drivers/gpu/drm/i915/gt/intel_reset.c index fd6c22aeb670..98575d79c446 100644 --- a/drivers/gpu/drm/i915/gt/intel_reset.c +++ b/drivers/gpu/drm/i915/gt/intel_reset.c @@ -705,7 +705,7 @@ static int __reset_guc(struct intel_gt *gt) static bool needs_wa_14015076503(struct intel_gt *gt, intel_engine_mask_t engine_mask) { - if (!IS_METEORLAKE(gt->i915) || !HAS_ENGINE(gt, GSC0)) + if (MEDIA_VER_FULL(gt->i915) != IP_VER(13, 0) || !HAS_ENGINE(gt, GSC0)) return false; if (!__HAS_ENGINE(engine_mask, GSC0)) diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c index 092542f53aad..4feef874e6d6 100644 --- a/drivers/gpu/drm/i915/gt/intel_rps.c +++ b/drivers/gpu/drm/i915/gt/intel_rps.c @@ -1161,7 +1161,7 @@ void gen6_rps_get_freq_caps(struct intel_rps *rps, struct intel_rps_freq_caps *c { struct drm_i915_private *i915 = rps_to_i915(rps); - if (IS_METEORLAKE(i915)) + if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 70)) return mtl_get_freq_caps(rps, caps); else return __gen6_rps_get_freq_caps(rps, caps); diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c index 32e27e9a2490..ba494a4a967a 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c @@ -850,7 +850,8 @@ int intel_uc_check_file_version(struct intel_uc_fw *uc_fw, bool *old_ver) * not working with newer ones. This is specific to MTL and we * don't expect it to extend to other platforms. */ - if (IS_METEORLAKE(gt->i915) && uc_fw->type == INTEL_UC_FW_TYPE_HUC) { + if (MEDIA_VER_FULL(gt->i915) == IP_VER(13, 0) && + uc_fw->type == INTEL_UC_FW_TYPE_HUC) { ret = check_mtl_huc_guc_compatibility(gt, selected); if (ret) return ret; diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index 4de44cf1026d..7a90a2e32c9f 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c @@ -144,7 +144,7 @@ static const char *i915_cache_level_str(struct drm_i915_gem_object *obj) { struct drm_i915_private *i915 = obj_to_i915(obj); - if (IS_METEORLAKE(i915)) { + if (IS_GFX_GT_IP_RANGE(to_gt(i915), IP_VER(12, 70), IP_VER(12, 71))) { switch (obj->pat_index) { case 0: return " WB"; case 1: return " WT"; diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c index 2ef8addb0cfd..f3ab6f65a556 100644 --- a/drivers/gpu/drm/i915/i915_perf.c +++ b/drivers/gpu/drm/i915/i915_perf.c @@ -3227,11 +3227,13 @@ get_sseu_config(struct intel_sseu *out_sseu, */ u32 i915_perf_oa_timestamp_frequency(struct drm_i915_private *i915) { + struct intel_gt *gt = to_gt(i915); + /* * Wa_18013179988:dg2 - * Wa_14015846243:mtl + * Wa_14015846243:xelpg */ - if (IS_DG2(i915) || IS_METEORLAKE(i915)) { + if (IS_DG2(i915) || IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 71))) { intel_wakeref_t wakeref; u32 reg, shift; @@ -4539,7 +4541,7 @@ static bool xehp_is_valid_b_counter_addr(struct i915_perf *perf, u32 addr) static bool gen12_is_valid_mux_addr(struct i915_perf *perf, u32 addr) { - if (IS_METEORLAKE(perf->i915)) + if (GRAPHICS_VER_FULL(perf->i915) >= IP_VER(12, 70)) return reg_in_range_table(addr, mtl_oa_mux_regs); else return reg_in_range_table(addr, gen12_oa_mux_regs); -- 2.41.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Reduce MTL-specific platform checks (rev3) 2023-08-10 21:57 [Intel-gfx] [PATCH v3 0/9] Reduce MTL-specific platform checks Matt Roper ` (8 preceding siblings ...) 2023-08-10 21:58 ` [Intel-gfx] [PATCH v3 9/9] drm/i915: Replace several IS_METEORLAKE with proper IP version checks Matt Roper @ 2023-08-11 1:45 ` Patchwork 2023-08-11 1:46 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork ` (2 subsequent siblings) 12 siblings, 0 replies; 17+ messages in thread From: Patchwork @ 2023-08-11 1:45 UTC (permalink / raw) To: Matt Roper; +Cc: intel-gfx == Series Details == Series: Reduce MTL-specific platform checks (rev3) URL : https://patchwork.freedesktop.org/series/120943/ State : warning == Summary == Error: dim checkpatch failed /home/kbuild/linux/maintainer-tools/dim: line 50: /home/kbuild/.dimrc: No such file or directory ^ permalink raw reply [flat|nested] 17+ messages in thread
* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for Reduce MTL-specific platform checks (rev3) 2023-08-10 21:57 [Intel-gfx] [PATCH v3 0/9] Reduce MTL-specific platform checks Matt Roper ` (9 preceding siblings ...) 2023-08-11 1:45 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Reduce MTL-specific platform checks (rev3) Patchwork @ 2023-08-11 1:46 ` Patchwork 2023-08-11 2:01 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork 2023-08-12 3:52 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork 12 siblings, 0 replies; 17+ messages in thread From: Patchwork @ 2023-08-11 1:46 UTC (permalink / raw) To: Matt Roper; +Cc: intel-gfx == Series Details == Series: Reduce MTL-specific platform checks (rev3) URL : https://patchwork.freedesktop.org/series/120943/ State : warning == Summary == Error: dim sparse failed /home/kbuild2/linux/maintainer-tools/dim: line 50: /home/kbuild2/.dimrc: No such file or directory ^ permalink raw reply [flat|nested] 17+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for Reduce MTL-specific platform checks (rev3) 2023-08-10 21:57 [Intel-gfx] [PATCH v3 0/9] Reduce MTL-specific platform checks Matt Roper ` (10 preceding siblings ...) 2023-08-11 1:46 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork @ 2023-08-11 2:01 ` Patchwork 2023-08-12 3:52 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork 12 siblings, 0 replies; 17+ messages in thread From: Patchwork @ 2023-08-11 2:01 UTC (permalink / raw) To: Matt Roper; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 5997 bytes --] == Series Details == Series: Reduce MTL-specific platform checks (rev3) URL : https://patchwork.freedesktop.org/series/120943/ State : success == Summary == CI Bug Log - changes from CI_DRM_13504 -> Patchwork_120943v3 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/index.html Participating hosts (43 -> 42) ------------------------------ Missing (1): fi-snb-2520m Known issues ------------ Here are the changes found in Patchwork_120943v3 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@i915_pm_rpm@basic-pci-d3-state: - bat-adlp-9: [PASS][1] -> [FAIL][2] ([i915#7940]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/bat-adlp-9/igt@i915_pm_rpm@basic-pci-d3-state.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/bat-adlp-9/igt@i915_pm_rpm@basic-pci-d3-state.html * igt@i915_pm_rpm@basic-rte: - fi-cfl-8109u: [PASS][3] -> [FAIL][4] ([i915#7940]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/fi-cfl-8109u/igt@i915_pm_rpm@basic-rte.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/fi-cfl-8109u/igt@i915_pm_rpm@basic-rte.html - fi-tgl-1115g4: [PASS][5] -> [FAIL][6] ([i915#7940]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/fi-tgl-1115g4/igt@i915_pm_rpm@basic-rte.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/fi-tgl-1115g4/igt@i915_pm_rpm@basic-rte.html - fi-skl-guc: [PASS][7] -> [FAIL][8] ([i915#7940]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/fi-skl-guc/igt@i915_pm_rpm@basic-rte.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/fi-skl-guc/igt@i915_pm_rpm@basic-rte.html * igt@i915_selftest@live@gt_heartbeat: - fi-kbl-soraka: [PASS][9] -> [DMESG-FAIL][10] ([i915#5334] / [i915#7872]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html * igt@i915_selftest@live@migrate: - bat-dg2-11: [PASS][11] -> [DMESG-WARN][12] ([i915#7699]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/bat-dg2-11/igt@i915_selftest@live@migrate.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/bat-dg2-11/igt@i915_selftest@live@migrate.html * igt@i915_selftest@live@mman: - bat-rpls-1: [PASS][13] -> [TIMEOUT][14] ([i915#6794] / [i915#7392]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/bat-rpls-1/igt@i915_selftest@live@mman.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/bat-rpls-1/igt@i915_selftest@live@mman.html * igt@i915_selftest@live@requests: - bat-mtlp-6: [PASS][15] -> [DMESG-FAIL][16] ([i915#8497]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/bat-mtlp-6/igt@i915_selftest@live@requests.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/bat-mtlp-6/igt@i915_selftest@live@requests.html * igt@i915_suspend@basic-s2idle-without-i915: - bat-rpls-1: NOTRUN -> [WARN][17] ([i915#8747]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/bat-rpls-1/igt@i915_suspend@basic-s2idle-without-i915.html * igt@i915_suspend@basic-s3-without-i915: - bat-rpls-1: NOTRUN -> [ABORT][18] ([i915#6687] / [i915#7978] / [i915#8668]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/bat-rpls-1/igt@i915_suspend@basic-s3-without-i915.html #### Possible fixes #### * igt@i915_pm_rpm@basic-pci-d3-state: - fi-skl-guc: [FAIL][19] ([i915#7940]) -> [PASS][20] [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/fi-skl-guc/igt@i915_pm_rpm@basic-pci-d3-state.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/fi-skl-guc/igt@i915_pm_rpm@basic-pci-d3-state.html [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334 [i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687 [i915#6794]: https://gitlab.freedesktop.org/drm/intel/issues/6794 [i915#7392]: https://gitlab.freedesktop.org/drm/intel/issues/7392 [i915#7699]: https://gitlab.freedesktop.org/drm/intel/issues/7699 [i915#7872]: https://gitlab.freedesktop.org/drm/intel/issues/7872 [i915#7940]: https://gitlab.freedesktop.org/drm/intel/issues/7940 [i915#7978]: https://gitlab.freedesktop.org/drm/intel/issues/7978 [i915#8497]: https://gitlab.freedesktop.org/drm/intel/issues/8497 [i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668 [i915#8747]: https://gitlab.freedesktop.org/drm/intel/issues/8747 Build changes ------------- * Linux: CI_DRM_13504 -> Patchwork_120943v3 CI-20190529: 20190529 CI_DRM_13504: 51fec314404b6a360493f225481083b2a664e3e1 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_7428: 2f916814e4153f428664ab87acec25694751b1f6 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_120943v3: 51fec314404b6a360493f225481083b2a664e3e1 @ git://anongit.freedesktop.org/gfx-ci/linux ### Linux commits 55e5988df200 drm/i915: Replace several IS_METEORLAKE with proper IP version checks 9a3cbe48a532 drm/i915/display: Eliminate IS_METEORLAKE checks 101102ed638e drm/i915/mtl: Eliminate subplatforms 76b75603aa25 drm/i915: Eliminate IS_MTL_DISPLAY_STEP 26cdd292db88 drm/i915: Eliminate IS_MTL_MEDIA_STEP 5e2ad04438c7 drm/i915: Eliminate IS_MTL_GRAPHICS_STEP a225917f5153 drm/i915/xelpg: Call Xe_LPG workaround functions based on IP version 64b0c9934ef3 drm/i915/xelpmp: Don't assume workarounds extend to future platforms c7496b5ffc5c drm/i915: Consolidate condition for Wa_22011802037 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/index.html [-- Attachment #2: Type: text/html, Size: 7151 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* [Intel-gfx] ✗ Fi.CI.IGT: failure for Reduce MTL-specific platform checks (rev3) 2023-08-10 21:57 [Intel-gfx] [PATCH v3 0/9] Reduce MTL-specific platform checks Matt Roper ` (11 preceding siblings ...) 2023-08-11 2:01 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork @ 2023-08-12 3:52 ` Patchwork 12 siblings, 0 replies; 17+ messages in thread From: Patchwork @ 2023-08-12 3:52 UTC (permalink / raw) To: Matt Roper; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 48847 bytes --] == Series Details == Series: Reduce MTL-specific platform checks (rev3) URL : https://patchwork.freedesktop.org/series/120943/ State : failure == Summary == CI Bug Log - changes from CI_DRM_13504_full -> Patchwork_120943v3_full ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with Patchwork_120943v3_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_120943v3_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. Participating hosts (11 -> 10) ------------------------------ Missing (1): shard-rkl0 Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_120943v3_full: ### IGT changes ### #### Possible regressions #### * igt@gem_exec_fence@parallel@vcs0: - shard-mtlp: [PASS][1] -> [DMESG-FAIL][2] +3 similar issues [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-mtlp-5/igt@gem_exec_fence@parallel@vcs0.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-4/igt@gem_exec_fence@parallel@vcs0.html * igt@gem_exec_fence@parallel@vecs0: - shard-mtlp: [PASS][3] -> [FAIL][4] +2 similar issues [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-mtlp-5/igt@gem_exec_fence@parallel@vecs0.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-4/igt@gem_exec_fence@parallel@vecs0.html * igt@gem_exec_schedule@noreorder-corked@vcs1: - shard-mtlp: [PASS][5] -> [DMESG-WARN][6] [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-mtlp-3/igt@gem_exec_schedule@noreorder-corked@vcs1.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-4/igt@gem_exec_schedule@noreorder-corked@vcs1.html * igt@perf@create-destroy-userspace-config: - shard-dg2: [PASS][7] -> [ABORT][8] +12 similar issues [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-dg2-2/igt@perf@create-destroy-userspace-config.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-11/igt@perf@create-destroy-userspace-config.html * igt@perf@gen12-mi-rpc@rcs0: - shard-rkl: [PASS][9] -> [ABORT][10] +16 similar issues [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-rkl-7/igt@perf@gen12-mi-rpc@rcs0.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-rkl-7/igt@perf@gen12-mi-rpc@rcs0.html * igt@perf@gen12-oa-tlb-invalidate@0-rcs0: - shard-dg2: NOTRUN -> [ABORT][11] +3 similar issues [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-2/igt@perf@gen12-oa-tlb-invalidate@0-rcs0.html * igt@perf@gen12-unprivileged-single-ctx-counters@rcs0: - shard-dg1: [PASS][12] -> [ABORT][13] +16 similar issues [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-dg1-13/igt@perf@gen12-unprivileged-single-ctx-counters@rcs0.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg1-18/igt@perf@gen12-unprivileged-single-ctx-counters@rcs0.html * igt@perf@global-sseu-config-invalid: - shard-tglu: NOTRUN -> [ABORT][14] +1 similar issue [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-tglu-6/igt@perf@global-sseu-config-invalid.html - shard-apl: NOTRUN -> [ABORT][15] +1 similar issue [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-apl4/igt@perf@global-sseu-config-invalid.html - shard-glk: NOTRUN -> [ABORT][16] +1 similar issue [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-glk1/igt@perf@global-sseu-config-invalid.html * igt@perf@invalid-oa-exponent: - shard-glk: [PASS][17] -> [ABORT][18] +13 similar issues [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-glk5/igt@perf@invalid-oa-exponent.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-glk3/igt@perf@invalid-oa-exponent.html * igt@perf@missing-sample-flags: - shard-tglu: [PASS][19] -> [ABORT][20] +17 similar issues [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-tglu-8/igt@perf@missing-sample-flags.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-tglu-10/igt@perf@missing-sample-flags.html * igt@perf@stress-open-close: - shard-rkl: NOTRUN -> [ABORT][21] +1 similar issue [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-rkl-4/igt@perf@stress-open-close.html - shard-dg1: NOTRUN -> [ABORT][22] +1 similar issue [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg1-15/igt@perf@stress-open-close.html * igt@perf@sysctl-defaults: - shard-apl: [PASS][23] -> [ABORT][24] +13 similar issues [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-apl6/igt@perf@sysctl-defaults.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-apl2/igt@perf@sysctl-defaults.html * igt@prime_busy@hang@vcs1: - shard-mtlp: [PASS][25] -> [INCOMPLETE][26] [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-mtlp-2/igt@prime_busy@hang@vcs1.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-7/igt@prime_busy@hang@vcs1.html * igt@sysfs_preempt_timeout@timeout@bcs0: - shard-glk: [PASS][27] -> [INCOMPLETE][28] [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-glk7/igt@sysfs_preempt_timeout@timeout@bcs0.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-glk7/igt@sysfs_preempt_timeout@timeout@bcs0.html #### Warnings #### * igt@perf@gen12-mi-rpc: - shard-glk: [SKIP][29] ([fdo#109271]) -> [ABORT][30] +4 similar issues [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-glk4/igt@perf@gen12-mi-rpc.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-glk6/igt@perf@gen12-mi-rpc.html * igt@perf@gen12-oa-tlb-invalidate: - shard-apl: [SKIP][31] ([fdo#109271]) -> [ABORT][32] +4 similar issues [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-apl4/igt@perf@gen12-oa-tlb-invalidate.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-apl2/igt@perf@gen12-oa-tlb-invalidate.html * igt@perf@global-sseu-config-invalid: - shard-dg2: [SKIP][33] ([i915#7387]) -> [ABORT][34] [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-dg2-10/igt@perf@global-sseu-config-invalid.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-1/igt@perf@global-sseu-config-invalid.html * igt@perf@unprivileged-single-ctx-counters: - shard-rkl: [SKIP][35] ([i915#2433]) -> [ABORT][36] [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-rkl-7/igt@perf@unprivileged-single-ctx-counters.html [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-rkl-7/igt@perf@unprivileged-single-ctx-counters.html - shard-dg1: [SKIP][37] ([fdo#109289] / [i915#2433]) -> [ABORT][38] [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-dg1-19/igt@perf@unprivileged-single-ctx-counters.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg1-17/igt@perf@unprivileged-single-ctx-counters.html - shard-tglu: [SKIP][39] ([fdo#109289]) -> [ABORT][40] [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-tglu-6/igt@perf@unprivileged-single-ctx-counters.html [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-tglu-4/igt@perf@unprivileged-single-ctx-counters.html New tests --------- New tests have been introduced between CI_DRM_13504_full and Patchwork_120943v3_full: ### New IGT tests (2) ### * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-a-dp-2: - Statuses : 1 skip(s) - Exec time: [0.0] s * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d-dp-2: - Statuses : 1 skip(s) - Exec time: [0.0] s Known issues ------------ Here are the changes found in Patchwork_120943v3_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@drm_fdinfo@busy-idle-check-all@vcs0: - shard-dg2: NOTRUN -> [SKIP][41] ([i915#8414]) +9 similar issues [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-10/igt@drm_fdinfo@busy-idle-check-all@vcs0.html * igt@gem_close_race@multigpu-basic-process: - shard-dg2: NOTRUN -> [SKIP][42] ([i915#7697]) [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-1/igt@gem_close_race@multigpu-basic-process.html * igt@gem_ctx_persistence@hostile: - shard-snb: NOTRUN -> [SKIP][43] ([fdo#109271] / [i915#1099]) +1 similar issue [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-snb4/igt@gem_ctx_persistence@hostile.html * igt@gem_eio@hibernate: - shard-dg2: [PASS][44] -> [ABORT][45] ([i915#7975] / [i915#8213]) [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-dg2-11/igt@gem_eio@hibernate.html [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-12/igt@gem_eio@hibernate.html * igt@gem_exec_fence@submit3: - shard-mtlp: NOTRUN -> [SKIP][46] ([i915#4812]) [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-5/igt@gem_exec_fence@submit3.html * igt@gem_exec_flush@basic-uc-ro-default: - shard-dg2: NOTRUN -> [SKIP][47] ([i915#3539] / [i915#4852]) [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-2/igt@gem_exec_flush@basic-uc-ro-default.html * igt@gem_exec_reloc@basic-cpu-active: - shard-mtlp: NOTRUN -> [SKIP][48] ([i915#3281]) +1 similar issue [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-5/igt@gem_exec_reloc@basic-cpu-active.html * igt@gem_exec_schedule@preempt-queue-contexts-chain: - shard-dg2: NOTRUN -> [SKIP][49] ([i915#4537] / [i915#4812]) +2 similar issues [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-10/igt@gem_exec_schedule@preempt-queue-contexts-chain.html * igt@gem_exec_schedule@u-semaphore-noskip: - shard-mtlp: [PASS][50] -> [DMESG-WARN][51] ([i915#1982]) [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-mtlp-8/igt@gem_exec_schedule@u-semaphore-noskip.html [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-5/igt@gem_exec_schedule@u-semaphore-noskip.html * igt@gem_exec_suspend@basic-s4-devices@smem: - shard-rkl: NOTRUN -> [ABORT][52] ([i915#7975] / [i915#8213]) [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-rkl-2/igt@gem_exec_suspend@basic-s4-devices@smem.html * igt@gem_fenced_exec_thrash@no-spare-fences-busy: - shard-dg2: NOTRUN -> [SKIP][53] ([i915#4860]) [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-2/igt@gem_fenced_exec_thrash@no-spare-fences-busy.html * igt@gem_lmem_swapping@smem-oom@lmem0: - shard-dg2: [PASS][54] -> [TIMEOUT][55] ([i915#5493]) [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-dg2-1/igt@gem_lmem_swapping@smem-oom@lmem0.html [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-1/igt@gem_lmem_swapping@smem-oom@lmem0.html - shard-dg1: [PASS][56] -> [TIMEOUT][57] ([i915#5493]) [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-dg1-16/igt@gem_lmem_swapping@smem-oom@lmem0.html [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg1-13/igt@gem_lmem_swapping@smem-oom@lmem0.html * igt@gem_mmap_gtt@basic-small-bo-tiledy: - shard-mtlp: NOTRUN -> [SKIP][58] ([i915#4077]) +1 similar issue [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-6/igt@gem_mmap_gtt@basic-small-bo-tiledy.html * igt@gem_mmap_gtt@cpuset-big-copy-odd: - shard-dg2: NOTRUN -> [SKIP][59] ([i915#4077]) +2 similar issues [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-1/igt@gem_mmap_gtt@cpuset-big-copy-odd.html * igt@gem_pwrite@basic-exhaustion: - shard-snb: NOTRUN -> [WARN][60] ([i915#2658]) [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-snb7/igt@gem_pwrite@basic-exhaustion.html * igt@gem_pxp@create-valid-protected-context: - shard-mtlp: NOTRUN -> [SKIP][61] ([i915#4270]) [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-5/igt@gem_pxp@create-valid-protected-context.html * igt@gem_pxp@verify-pxp-stale-ctx-execution: - shard-dg2: NOTRUN -> [SKIP][62] ([i915#4270]) +1 similar issue [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-10/igt@gem_pxp@verify-pxp-stale-ctx-execution.html * igt@gem_render_copy@y-tiled-to-vebox-x-tiled: - shard-mtlp: NOTRUN -> [SKIP][63] ([i915#8428]) +2 similar issues [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-5/igt@gem_render_copy@y-tiled-to-vebox-x-tiled.html * igt@gem_userptr_blits@forbidden-operations: - shard-dg2: NOTRUN -> [SKIP][64] ([i915#3282]) +1 similar issue [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-1/igt@gem_userptr_blits@forbidden-operations.html * igt@gem_userptr_blits@map-fixed-invalidate: - shard-dg2: NOTRUN -> [SKIP][65] ([i915#3297] / [i915#4880]) [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-2/igt@gem_userptr_blits@map-fixed-invalidate.html * igt@gem_userptr_blits@relocations: - shard-dg2: NOTRUN -> [SKIP][66] ([i915#3281]) +2 similar issues [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-1/igt@gem_userptr_blits@relocations.html * igt@gem_userptr_blits@unsync-overlap: - shard-dg2: NOTRUN -> [SKIP][67] ([i915#3297]) +1 similar issue [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-10/igt@gem_userptr_blits@unsync-overlap.html * igt@gen7_exec_parse@basic-rejected: - shard-dg2: NOTRUN -> [SKIP][68] ([fdo#109289]) +1 similar issue [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-1/igt@gen7_exec_parse@basic-rejected.html * igt@gen9_exec_parse@secure-batches: - shard-dg2: NOTRUN -> [SKIP][69] ([i915#2856]) +1 similar issue [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-10/igt@gen9_exec_parse@secure-batches.html * igt@i915_module_load@load: - shard-dg2: NOTRUN -> [SKIP][70] ([i915#6227]) [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-2/igt@i915_module_load@load.html * igt@i915_module_load@reload-with-fault-injection: - shard-dg2: [PASS][71] -> [WARN][72] ([i915#7356]) [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-dg2-11/igt@i915_module_load@reload-with-fault-injection.html [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-6/igt@i915_module_load@reload-with-fault-injection.html * igt@i915_pm_rpm@dpms-mode-unset-lpsp: - shard-dg2: [PASS][73] -> [SKIP][74] ([i915#1397]) [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-dg2-12/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-2/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html * igt@i915_pm_rpm@gem-execbuf-stress-pc8: - shard-dg2: NOTRUN -> [SKIP][75] ([fdo#109506]) [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-10/igt@i915_pm_rpm@gem-execbuf-stress-pc8.html * igt@i915_selftest@perf@request: - shard-mtlp: [PASS][76] -> [DMESG-FAIL][77] ([i915#8573]) [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-mtlp-1/igt@i915_selftest@perf@request.html [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-8/igt@i915_selftest@perf@request.html * igt@kms_addfb_basic@bo-too-small-due-to-tiling: - shard-dg2: NOTRUN -> [SKIP][78] ([i915#4212]) [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-2/igt@kms_addfb_basic@bo-too-small-due-to-tiling.html * igt@kms_async_flips@crc@pipe-b-hdmi-a-1: - shard-dg2: NOTRUN -> [FAIL][79] ([i915#8247]) +3 similar issues [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-10/igt@kms_async_flips@crc@pipe-b-hdmi-a-1.html - shard-rkl: NOTRUN -> [FAIL][80] ([i915#8247]) +1 similar issue [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-rkl-7/igt@kms_async_flips@crc@pipe-b-hdmi-a-1.html * igt@kms_async_flips@invalid-async-flip: - shard-mtlp: NOTRUN -> [SKIP][81] ([i915#6228]) [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-5/igt@kms_async_flips@invalid-async-flip.html * igt@kms_atomic@plane-primary-overlay-mutable-zpos: - shard-dg2: NOTRUN -> [SKIP][82] ([i915#404]) [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-10/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html * igt@kms_big_fb@4-tiled-16bpp-rotate-270: - shard-dg2: NOTRUN -> [SKIP][83] ([fdo#111614]) [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-2/igt@kms_big_fb@4-tiled-16bpp-rotate-270.html * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip: - shard-dg2: NOTRUN -> [SKIP][84] ([i915#5190]) +4 similar issues [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-2/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html * igt@kms_big_fb@yf-tiled-16bpp-rotate-0: - shard-apl: [PASS][85] -> [DMESG-WARN][86] ([i915#1982] / [i915#8585]) [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-apl2/igt@kms_big_fb@yf-tiled-16bpp-rotate-0.html [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-apl1/igt@kms_big_fb@yf-tiled-16bpp-rotate-0.html * igt@kms_big_fb@yf-tiled-16bpp-rotate-270: - shard-rkl: NOTRUN -> [SKIP][87] ([fdo#110723]) [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-rkl-2/igt@kms_big_fb@yf-tiled-16bpp-rotate-270.html * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip: - shard-dg2: NOTRUN -> [SKIP][88] ([i915#4538] / [i915#5190]) +3 similar issues [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-10/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip.html * igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_mc_ccs: - shard-dg2: NOTRUN -> [SKIP][89] ([i915#3689] / [i915#3886] / [i915#5354]) +2 similar issues [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-2/igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_ccs: - shard-dg2: NOTRUN -> [SKIP][90] ([i915#3689] / [i915#5354]) +10 similar issues [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-2/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_ccs.html * igt@kms_ccs@pipe-b-ccs-on-another-bo-yf_tiled_ccs: - shard-mtlp: NOTRUN -> [SKIP][91] ([i915#6095]) +1 similar issue [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-6/igt@kms_ccs@pipe-b-ccs-on-another-bo-yf_tiled_ccs.html * igt@kms_ccs@pipe-b-crc-primary-rotation-180-4_tiled_mtl_mc_ccs: - shard-rkl: NOTRUN -> [SKIP][92] ([i915#5354] / [i915#6095]) [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-rkl-2/igt@kms_ccs@pipe-b-crc-primary-rotation-180-4_tiled_mtl_mc_ccs.html * igt@kms_ccs@pipe-b-random-ccs-data-4_tiled_dg2_rc_ccs: - shard-snb: NOTRUN -> [SKIP][93] ([fdo#109271]) +175 similar issues [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-snb7/igt@kms_ccs@pipe-b-random-ccs-data-4_tiled_dg2_rc_ccs.html * igt@kms_chamelium_color@ctm-negative: - shard-dg2: NOTRUN -> [SKIP][94] ([fdo#111827]) +1 similar issue [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-2/igt@kms_chamelium_color@ctm-negative.html * igt@kms_chamelium_frames@hdmi-crc-single: - shard-dg2: NOTRUN -> [SKIP][95] ([i915#7828]) +2 similar issues [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-1/igt@kms_chamelium_frames@hdmi-crc-single.html * igt@kms_content_protection@atomic: - shard-dg2: NOTRUN -> [SKIP][96] ([i915#7118]) [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-2/igt@kms_content_protection@atomic.html * igt@kms_content_protection@uevent: - shard-apl: NOTRUN -> [SKIP][97] ([fdo#109271]) [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-apl1/igt@kms_content_protection@uevent.html * igt@kms_cursor_crc@cursor-offscreen-512x170: - shard-dg2: NOTRUN -> [SKIP][98] ([i915#3359]) [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-1/igt@kms_cursor_crc@cursor-offscreen-512x170.html * igt@kms_cursor_crc@cursor-onscreen-32x10: - shard-mtlp: NOTRUN -> [SKIP][99] ([i915#8814]) [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-5/igt@kms_cursor_crc@cursor-onscreen-32x10.html * igt@kms_cursor_crc@cursor-rapid-movement-512x512: - shard-rkl: NOTRUN -> [SKIP][100] ([i915#3359]) [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-rkl-2/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html * igt@kms_cursor_legacy@2x-cursor-vs-flip-atomic: - shard-mtlp: NOTRUN -> [SKIP][101] ([i915#3546]) [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-5/igt@kms_cursor_legacy@2x-cursor-vs-flip-atomic.html * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size: - shard-dg2: NOTRUN -> [SKIP][102] ([fdo#109274] / [i915#5354]) [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-1/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html * igt@kms_dsc@dsc-with-formats: - shard-mtlp: NOTRUN -> [SKIP][103] ([i915#3840]) [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-5/igt@kms_dsc@dsc-with-formats.html * igt@kms_flip@2x-blocking-wf_vblank: - shard-dg2: NOTRUN -> [SKIP][104] ([fdo#109274]) +1 similar issue [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-1/igt@kms_flip@2x-blocking-wf_vblank.html * igt@kms_flip@2x-flip-vs-suspend-interruptible@ab-vga1-hdmi-a1: - shard-snb: NOTRUN -> [DMESG-WARN][105] ([i915#8841]) [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-snb1/igt@kms_flip@2x-flip-vs-suspend-interruptible@ab-vga1-hdmi-a1.html * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode: - shard-dg2: NOTRUN -> [SKIP][106] ([i915#2672]) [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-1/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode.html * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode: - shard-dg2: NOTRUN -> [SKIP][107] ([i915#2672] / [i915#3555]) [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-1/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode.html * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-pwrite: - shard-snb: [PASS][108] -> [SKIP][109] ([fdo#109271]) [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-snb6/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-pwrite.html [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-snb4/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-pgflip-blt: - shard-dg2: [PASS][110] -> [FAIL][111] ([i915#6880]) [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-dg2-1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-pgflip-blt.html [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-10/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-plflip-blt: - shard-dg2: NOTRUN -> [SKIP][112] ([i915#5354]) +17 similar issues [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-10/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-plflip-blt.html * igt@kms_frontbuffer_tracking@fbc-tiling-y: - shard-dg2: NOTRUN -> [SKIP][113] ([i915#5460]) [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-1/igt@kms_frontbuffer_tracking@fbc-tiling-y.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-gtt: - shard-dg2: NOTRUN -> [SKIP][114] ([i915#8708]) +6 similar issues [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-cpu: - shard-mtlp: NOTRUN -> [SKIP][115] ([i915#1825]) +5 similar issues [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-2/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@psr-rgb565-draw-blt: - shard-dg2: NOTRUN -> [SKIP][116] ([i915#3458]) +4 similar issues [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-2/igt@kms_frontbuffer_tracking@psr-rgb565-draw-blt.html * igt@kms_hdr@bpc-switch-dpms: - shard-rkl: NOTRUN -> [SKIP][117] ([i915#3555] / [i915#8228]) [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-rkl-3/igt@kms_hdr@bpc-switch-dpms.html * igt@kms_hdr@bpc-switch-suspend: - shard-dg2: NOTRUN -> [SKIP][118] ([i915#3555] / [i915#8228]) [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-10/igt@kms_hdr@bpc-switch-suspend.html * igt@kms_panel_fitting@atomic-fastset: - shard-dg2: NOTRUN -> [SKIP][119] ([i915#6301]) [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-1/igt@kms_panel_fitting@atomic-fastset.html * igt@kms_pipe_b_c_ivb@disable-pipe-b-enable-pipe-c: - shard-mtlp: NOTRUN -> [SKIP][120] ([fdo#109289]) [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-6/igt@kms_pipe_b_c_ivb@disable-pipe-b-enable-pipe-c.html * igt@kms_plane_lowres@tiling-none@pipe-b-edp-1: - shard-mtlp: NOTRUN -> [SKIP][121] ([i915#3582]) +3 similar issues [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-6/igt@kms_plane_lowres@tiling-none@pipe-b-edp-1.html * igt@kms_plane_lowres@tiling-y: - shard-mtlp: NOTRUN -> [SKIP][122] ([i915#8821]) [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-5/igt@kms_plane_lowres@tiling-y.html * igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-25@pipe-c-hdmi-a-2: - shard-dg2: NOTRUN -> [SKIP][123] ([i915#5176]) +3 similar issues [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-2/igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-25@pipe-c-hdmi-a-2.html * igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-25@pipe-d-hdmi-a-3: - shard-dg1: NOTRUN -> [SKIP][124] ([i915#5176]) +7 similar issues [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg1-13/igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-25@pipe-d-hdmi-a-3.html * igt@kms_plane_scaling@plane-upscale-with-rotation-20x20@pipe-a-hdmi-a-1: - shard-rkl: NOTRUN -> [SKIP][125] ([i915#5176]) +1 similar issue [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-rkl-7/igt@kms_plane_scaling@plane-upscale-with-rotation-20x20@pipe-a-hdmi-a-1.html * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-a-hdmi-a-3: - shard-dg1: NOTRUN -> [SKIP][126] ([i915#5235]) +3 similar issues [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg1-13/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-a-hdmi-a-3.html * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d-edp-1: - shard-mtlp: NOTRUN -> [SKIP][127] ([i915#5235]) +3 similar issues [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-5/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d-edp-1.html * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-b-hdmi-a-1: - shard-rkl: NOTRUN -> [SKIP][128] ([i915#5235]) +5 similar issues [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-rkl-7/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-b-hdmi-a-1.html * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-a-hdmi-a-3: - shard-dg2: NOTRUN -> [SKIP][129] ([i915#5235]) +15 similar issues [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-6/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-a-hdmi-a-3.html * igt@kms_properties@connector-properties-legacy: - shard-apl: [PASS][130] -> [DMESG-WARN][131] ([i915#8585]) +25 similar issues [130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-apl2/igt@kms_properties@connector-properties-legacy.html [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-apl1/igt@kms_properties@connector-properties-legacy.html * igt@kms_psr2_sf@overlay-plane-update-continuous-sf: - shard-dg2: NOTRUN -> [SKIP][132] ([i915#658]) [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-1/igt@kms_psr2_sf@overlay-plane-update-continuous-sf.html * igt@kms_psr@psr2_primary_render: - shard-dg2: NOTRUN -> [SKIP][133] ([i915#1072]) +2 similar issues [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-10/igt@kms_psr@psr2_primary_render.html * igt@kms_rotation_crc@bad-pixel-format: - shard-dg2: NOTRUN -> [SKIP][134] ([i915#4235]) [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-1/igt@kms_rotation_crc@bad-pixel-format.html * igt@kms_selftest@drm_format: - shard-snb: NOTRUN -> [SKIP][135] ([fdo#109271] / [i915#8661]) [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-snb4/igt@kms_selftest@drm_format.html * igt@kms_sysfs_edid_timing: - shard-dg2: NOTRUN -> [FAIL][136] ([IGT#2]) [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-2/igt@kms_sysfs_edid_timing.html * igt@kms_vblank@pipe-c-accuracy-idle: - shard-glk: [PASS][137] -> [FAIL][138] ([i915#8713]) [137]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-glk3/igt@kms_vblank@pipe-c-accuracy-idle.html [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-glk4/igt@kms_vblank@pipe-c-accuracy-idle.html * igt@kms_writeback@writeback-pixel-formats: - shard-dg2: NOTRUN -> [SKIP][139] ([i915#2437]) [139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-2/igt@kms_writeback@writeback-pixel-formats.html * igt@perf_pmu@module-unload: - shard-dg2: NOTRUN -> [FAIL][140] ([i915#5793] / [i915#6121]) [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-2/igt@perf_pmu@module-unload.html * igt@v3d/v3d_submit_cl@bad-pad: - shard-mtlp: NOTRUN -> [SKIP][141] ([i915#2575]) [141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-5/igt@v3d/v3d_submit_cl@bad-pad.html * igt@v3d/v3d_submit_cl@simple-flush-cache: - shard-dg2: NOTRUN -> [SKIP][142] ([i915#2575]) +4 similar issues [142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-2/igt@v3d/v3d_submit_cl@simple-flush-cache.html * igt@vc4/vc4_dmabuf_poll@poll-write-waits-until-write-done: - shard-dg2: NOTRUN -> [SKIP][143] ([i915#7711]) +3 similar issues [143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-1/igt@vc4/vc4_dmabuf_poll@poll-write-waits-until-write-done.html #### Possible fixes #### * igt@gem_ctx_isolation@preservation-s3@ccs1: - shard-dg2: [FAIL][144] ([fdo#103375]) -> [PASS][145] [144]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-dg2-11/igt@gem_ctx_isolation@preservation-s3@ccs1.html [145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-12/igt@gem_ctx_isolation@preservation-s3@ccs1.html * igt@gem_exec_fair@basic-none-share@rcs0: - shard-rkl: [FAIL][146] ([i915#2842]) -> [PASS][147] [146]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-rkl-4/igt@gem_exec_fair@basic-none-share@rcs0.html [147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-rkl-7/igt@gem_exec_fair@basic-none-share@rcs0.html * igt@gem_exec_fair@basic-pace-share@rcs0: - shard-tglu: [FAIL][148] ([i915#2842]) -> [PASS][149] [148]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-tglu-9/igt@gem_exec_fair@basic-pace-share@rcs0.html [149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-tglu-9/igt@gem_exec_fair@basic-pace-share@rcs0.html * igt@gem_exec_schedule@noreorder@bcs0: - shard-mtlp: [FAIL][150] -> [PASS][151] [150]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-mtlp-4/igt@gem_exec_schedule@noreorder@bcs0.html [151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-7/igt@gem_exec_schedule@noreorder@bcs0.html * igt@gem_exec_schedule@noreorder@rcs0: - shard-mtlp: [DMESG-FAIL][152] -> [PASS][153] [152]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-mtlp-4/igt@gem_exec_schedule@noreorder@rcs0.html [153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-7/igt@gem_exec_schedule@noreorder@rcs0.html * igt@i915_pm_rc6_residency@rc6-idle@bcs0: - shard-dg1: [FAIL][154] ([i915#3591]) -> [PASS][155] [154]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-dg1-14/igt@i915_pm_rc6_residency@rc6-idle@bcs0.html [155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg1-15/igt@i915_pm_rc6_residency@rc6-idle@bcs0.html * igt@i915_pm_rpm@cursor: - shard-tglu: [FAIL][156] ([i915#7940]) -> [PASS][157] [156]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-tglu-9/igt@i915_pm_rpm@cursor.html [157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-tglu-9/igt@i915_pm_rpm@cursor.html * igt@i915_pm_rpm@dpms-mode-unset-non-lpsp: - shard-dg1: [SKIP][158] ([i915#1397]) -> [PASS][159] [158]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-dg1-19/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html [159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg1-13/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html * igt@i915_pm_rpm@modeset-non-lpsp-stress: - shard-dg2: [SKIP][160] ([i915#1397]) -> [PASS][161] [160]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-dg2-10/igt@i915_pm_rpm@modeset-non-lpsp-stress.html [161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-6/igt@i915_pm_rpm@modeset-non-lpsp-stress.html - shard-rkl: [SKIP][162] ([i915#1397]) -> [PASS][163] +1 similar issue [162]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-rkl-7/igt@i915_pm_rpm@modeset-non-lpsp-stress.html [163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-rkl-4/igt@i915_pm_rpm@modeset-non-lpsp-stress.html * igt@i915_pm_rpm@system-suspend-execbuf: - shard-dg2: [INCOMPLETE][164] -> [PASS][165] [164]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-dg2-12/igt@i915_pm_rpm@system-suspend-execbuf.html [165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-dg2-2/igt@i915_pm_rpm@system-suspend-execbuf.html * igt@kms_async_flips@alternate-sync-async-flip@pipe-c-edp-1: - shard-mtlp: [FAIL][166] ([i915#2521]) -> [PASS][167] [166]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-mtlp-4/igt@kms_async_flips@alternate-sync-async-flip@pipe-c-edp-1.html [167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-7/igt@kms_async_flips@alternate-sync-async-flip@pipe-c-edp-1.html * igt@kms_cursor_crc@cursor-sliding-128x128@pipe-a-edp-1: - shard-mtlp: [DMESG-WARN][168] ([i915#8561]) -> [PASS][169] +1 similar issue [168]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-mtlp-4/igt@kms_cursor_crc@cursor-sliding-128x128@pipe-a-edp-1.html [169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-7/igt@kms_cursor_crc@cursor-sliding-128x128@pipe-a-edp-1.html * igt@kms_cursor_legacy@cursor-vs-flip-legacy: - shard-mtlp: [FAIL][170] ([i915#8248]) -> [PASS][171] [170]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-mtlp-6/igt@kms_cursor_legacy@cursor-vs-flip-legacy.html [171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-3/igt@kms_cursor_legacy@cursor-vs-flip-legacy.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions: - shard-glk: [FAIL][172] ([i915#2346]) -> [PASS][173] [172]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-glk6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html [173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-glk9/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html #### Warnings #### * igt@i915_pm_rpm@dpms-mode-unset-non-lpsp: - shard-tglu: [FAIL][174] ([i915#7940]) -> [SKIP][175] ([fdo#111644] / [i915#1397]) [174]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-tglu-2/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html [175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-tglu-4/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html * igt@i915_suspend@basic-s3-without-i915: - shard-snb: [DMESG-WARN][176] ([i915#8841]) -> [INCOMPLETE][177] ([i915#4528] / [i915#4817]) [176]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-snb5/igt@i915_suspend@basic-s3-without-i915.html [177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-snb6/igt@i915_suspend@basic-s3-without-i915.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size: - shard-mtlp: [FAIL][178] ([i915#2346]) -> [DMESG-FAIL][179] ([i915#2017] / [i915#5954]) [178]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-mtlp-6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html [179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html * igt@kms_fbcon_fbt@psr: - shard-rkl: [SKIP][180] ([fdo#110189] / [i915#3955]) -> [SKIP][181] ([i915#3955]) [180]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-rkl-1/igt@kms_fbcon_fbt@psr.html [181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-rkl-3/igt@kms_fbcon_fbt@psr.html * igt@kms_flip@flip-vs-suspend-interruptible@b-vga1: - shard-snb: [DMESG-WARN][182] ([i915#8841]) -> [DMESG-WARN][183] ([i915#5090] / [i915#8841]) [182]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-snb2/igt@kms_flip@flip-vs-suspend-interruptible@b-vga1.html [183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-snb5/igt@kms_flip@flip-vs-suspend-interruptible@b-vga1.html * igt@sysfs_heartbeat_interval@mixed@ccs0: - shard-mtlp: [ABORT][184] ([i915#8552]) -> [DMESG-WARN][185] ([i915#8552]) [184]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-mtlp-8/igt@sysfs_heartbeat_interval@mixed@ccs0.html [185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-6/igt@sysfs_heartbeat_interval@mixed@ccs0.html * igt@sysfs_heartbeat_interval@mixed@vecs0: - shard-mtlp: [FAIL][186] ([i915#1731]) -> [ABORT][187] ([i915#8552]) [186]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13504/shard-mtlp-8/igt@sysfs_heartbeat_interval@mixed@vecs0.html [187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/shard-mtlp-6/igt@sysfs_heartbeat_interval@mixed@vecs0.html [IGT#2]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/2 [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274 [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289 [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506 [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189 [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723 [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614 [fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099 [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397 [i915#1731]: https://gitlab.freedesktop.org/drm/intel/issues/1731 [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825 [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#2017]: https://gitlab.freedesktop.org/drm/intel/issues/2017 [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346 [i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433 [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437 [i915#2521]: https://gitlab.freedesktop.org/drm/intel/issues/2521 [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575 [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658 [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672 [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842 [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856 [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297 [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359 [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458 [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539 [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3582]: https://gitlab.freedesktop.org/drm/intel/issues/3582 [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591 [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689 [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840 [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886 [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955 [i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212 [i915#4235]: https://gitlab.freedesktop.org/drm/intel/issues/4235 [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270 [i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528 [i915#4537]: https://gitlab.freedesktop.org/drm/intel/issues/4537 [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538 [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812 [i915#4817]: https://gitlab.freedesktop.org/drm/intel/issues/4817 [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852 [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860 [i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880 [i915#5090]: https://gitlab.freedesktop.org/drm/intel/issues/5090 [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176 [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190 [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235 [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354 [i915#5460]: https://gitlab.freedesktop.org/drm/intel/issues/5460 [i915#5493]: https://gitlab.freedesktop.org/drm/intel/issues/5493 [i915#5793]: https://gitlab.freedesktop.org/drm/intel/issues/5793 [i915#5954]: https://gitlab.freedesktop.org/drm/intel/issues/5954 [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095 [i915#6121]: https://gitlab.freedesktop.org/drm/intel/issues/6121 [i915#6227]: https://gitlab.freedesktop.org/drm/intel/issues/6227 [i915#6228]: https://gitlab.freedesktop.org/drm/intel/issues/6228 [i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301 [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658 [i915#6880]: https://gitlab.freedesktop.org/drm/intel/issues/6880 [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118 [i915#7356]: https://gitlab.freedesktop.org/drm/intel/issues/7356 [i915#7387]: https://gitlab.freedesktop.org/drm/intel/issues/7387 [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697 [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711 [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828 [i915#7940]: https://gitlab.freedesktop.org/drm/intel/issues/7940 [i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975 [i915#8213]: https://gitlab.freedesktop.org/drm/intel/issues/8213 [i915#8228]: https://gitlab.freedesktop.org/drm/intel/issues/8228 [i915#8247]: https://gitlab.freedesktop.org/drm/intel/issues/8247 [i915#8248]: https://gitlab.freedesktop.org/drm/intel/issues/8248 [i915#8414]: https://gitlab.freedesktop.org/drm/intel/issues/8414 [i915#8428]: https://gitlab.freedesktop.org/drm/intel/issues/8428 [i915#8552]: https://gitlab.freedesktop.org/drm/intel/issues/8552 [i915#8561]: https://gitlab.freedesktop.org/drm/intel/issues/8561 [i915#8573]: https://gitlab.freedesktop.org/drm/intel/issues/8573 [i915#8585]: https://gitlab.freedesktop.org/drm/intel/issues/8585 [i915#8661]: https://gitlab.freedesktop.org/drm/intel/issues/8661 [i915#8708]: https://gitlab.freedesktop.org/drm/intel/issues/8708 [i915#8713]: https://gitlab.freedesktop.org/drm/intel/issues/8713 [i915#8814]: https://gitlab.freedesktop.org/drm/intel/issues/8814 [i915#8821]: https://gitlab.freedesktop.org/drm/intel/issues/8821 [i915#8841]: https://gitlab.freedesktop.org/drm/intel/issues/8841 Build changes ------------- * Linux: CI_DRM_13504 -> Patchwork_120943v3 CI-20190529: 20190529 CI_DRM_13504: 51fec314404b6a360493f225481083b2a664e3e1 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_7428: 2f916814e4153f428664ab87acec25694751b1f6 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_120943v3: 51fec314404b6a360493f225481083b2a664e3e1 @ git://anongit.freedesktop.org/gfx-ci/linux piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120943v3/index.html [-- Attachment #2: Type: text/html, Size: 56334 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2023-08-14 10:25 UTC | newest] Thread overview: 17+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-08-10 21:57 [Intel-gfx] [PATCH v3 0/9] Reduce MTL-specific platform checks Matt Roper 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 1/9] drm/i915: Consolidate condition for Wa_22011802037 Matt Roper 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 2/9] drm/i915/xelpmp: Don't assume workarounds extend to future platforms Matt Roper 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 3/9] drm/i915/xelpg: Call Xe_LPG workaround functions based on IP version Matt Roper 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 4/9] drm/i915: Eliminate IS_MTL_GRAPHICS_STEP Matt Roper 2023-08-11 7:32 ` Jani Nikula 2023-08-11 18:02 ` Matt Roper 2023-08-14 10:25 ` Jani Nikula 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 5/9] drm/i915: Eliminate IS_MTL_MEDIA_STEP Matt Roper 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 6/9] drm/i915: Eliminate IS_MTL_DISPLAY_STEP Matt Roper 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 7/9] drm/i915/mtl: Eliminate subplatforms Matt Roper 2023-08-10 21:57 ` [Intel-gfx] [PATCH v3 8/9] drm/i915/display: Eliminate IS_METEORLAKE checks Matt Roper 2023-08-10 21:58 ` [Intel-gfx] [PATCH v3 9/9] drm/i915: Replace several IS_METEORLAKE with proper IP version checks Matt Roper 2023-08-11 1:45 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Reduce MTL-specific platform checks (rev3) Patchwork 2023-08-11 1:46 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork 2023-08-11 2:01 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork 2023-08-12 3:52 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.