drm/i915/mtl: Extend Wa_16014892111 to MTL A-step
authorRadhakrishna Sripada <radhakrishna.sripada@intel.com>
Wed, 17 May 2023 23:31:11 +0000 (16:31 -0700)
committerRadhakrishna Sripada <radhakrishna.sripada@intel.com>
Thu, 18 May 2023 16:57:44 +0000 (09:57 -0700)
Like DG2, MTL a-step hardware is subject to Wa_16014892111 which
requires that any changes made to the DRAW_WATERMARK register be
done via an INDIRECT_CTX batch buffer rather than through a regular
context workaround.

The bspec gives the same non-default recommended tuning value
for DRAW_WATERMARK as DG2, so we can re-use the INDIRECT_CTX code
to apply that tuning setting on A-step hardware.

Application of the tuning setting on B-step and later does not
need INDIRECT_CTX handling and is already done in
mtl_ctx_workarounds_init() as usual.

v2: Limit the WA for A-step
v3: Update the commit message.
v4: Reorder platform checks and update commit message.

Bspec: 68331
Cc: Haridhar Kalvala <haridhar.kalvala@intel.com>
Cc: Gustavo Sousa <gustavo.sousa@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230517233111.297542-2-radhakrishna.sripada@intel.com
drivers/gpu/drm/i915/gt/intel_lrc.c

index 81a96c5..a4ec20a 100644 (file)
@@ -1370,7 +1370,9 @@ gen12_emit_indirect_ctx_rcs(const struct intel_context *ce, u32 *cs)
                                              cs, GEN12_GFX_CCS_AUX_NV);
 
        /* Wa_16014892111 */
-       if (IS_DG2(ce->engine->i915))
+       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) ||
+           IS_DG2(ce->engine->i915))
                cs = dg2_emit_draw_watermark_setting(cs);
 
        return cs;