drm/i915/tgl: Initialize multicast register steering for workarounds
authorMatt Roper <matthew.d.roper@intel.com>
Tue, 14 Apr 2020 21:11:18 +0000 (14:11 -0700)
committerMatt Roper <matthew.d.roper@intel.com>
Wed, 15 Apr 2020 22:29:20 +0000 (15:29 -0700)
Even though the bspec is missing gen12 register details for the MCR
selector register (0xFDC), this is confirmed by hardware folks to be a
mistake; the register does exist and we do indeed need to steer
multicast register reads to an appropriate instance the same as we did
on gen11.

Note that despite the lack of documentation we were still using the MCR
selector to read INSTDONE and such in read_subslice_reg() too.

Cc: Matt Atwood <matthew.s.atwood@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200414211118.2787489-4-matthew.d.roper@intel.com
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
drivers/gpu/drm/i915/gt/intel_workarounds.c

index 5b1a03d2fd252a0bacbcf09584d3e2304c137ecf..adddc5c93b48e677a894cece77ff262b6a3a26a6 100644 (file)
@@ -943,6 +943,8 @@ icl_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
 static void
 tgl_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
 {
+       wa_init_mcr(i915, wal);
+
        /* Wa_1409420604:tgl */
        if (IS_TGL_REVID(i915, TGL_REVID_A0, TGL_REVID_A0))
                wa_write_or(wal,