drm/i915: Split GAM and MSLICE steering
authorMatt Roper <matthew.d.roper@intel.com>
Fri, 16 Sep 2022 01:43:45 +0000 (18:43 -0700)
committerMatt Roper <matthew.d.roper@intel.com>
Wed, 21 Sep 2022 20:01:05 +0000 (13:01 -0700)
commit07a70f38e9c33b3c614668b12a847f9fe65a4e25
tree095edc78fe526ff8796f4c3ec604e31fbdc55065
parentfb7818989976317cc2e78008aa2df7b9fe423c86
drm/i915: Split GAM and MSLICE steering

Although the bspec lists several MMIO ranges as "MSLICE," it turns out
that a subset of these are of a "GAM" subclass that has unique rules and
doesn't followed regular mslice steering behavior.

 * Xe_HP SDV:  GAM ranges must always be steered to 0,0.  These
   registers share the regular steering control register (0xFDC) with
   other steering types

 * DG2:  GAM ranges must always be steered to 1,0.  GAM registers have a
   dedicated steering control register (0xFE0) so we can set the value
   once at startup and rely on implicit steering.  Technically the
   hardware default should already be set to 1,0 properly, but it never
   hurts to ensure that in the driver.

Bspec: 66534
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Prathap Kumar Valsan <prathap.kumar.valsan@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220916014345.3317739-1-matthew.d.roper@intel.com
drivers/gpu/drm/i915/gt/intel_gt_mcr.c
drivers/gpu/drm/i915/gt/intel_gt_regs.h
drivers/gpu/drm/i915/gt/intel_gt_types.h
drivers/gpu/drm/i915/gt/intel_workarounds.c