drm/i915/dg2: Add forcewake table
authorMatt Roper <matthew.d.roper@intel.com>
Thu, 29 Jul 2021 16:59:53 +0000 (09:59 -0700)
committerMatt Roper <matthew.d.roper@intel.com>
Wed, 4 Aug 2021 04:05:28 +0000 (21:05 -0700)
commite05316366040429ccce7068de17066b1cbf944bb
tree3b5d72723a61dd3df6f0b0dd903f9fdf485c2a63
parent216d56c5da5c93cb2ae91b911ad6ccfc33e03bee
drm/i915/dg2: Add forcewake table

The DG2 forcewake table is very similar to the one used by XeHP SDV (and
both platforms are even presented as a single table in the bspec).  For
the most part DG2 starts using a few additional ranges that were
'reserved' on XeHP SDV and stops using some others.  However there is a
single range (0xd800-0xd87f) that needs to be handled differently
between the two platforms (it needs GT wake on XeHP SDV, but render wake
on DG2) so unless we want to wake both domains (which could waste power)
or define new types of forcewake domains for this special case we need
to have separate tables for the two platforms.  Let's define the ranges
for both platforms with a parameterized macro so that we don't actually
need to duplicate everything in the code.

It should be fine for DG2 to re-use the Xe_HP shadow register list so we
can continue to use the 'xehpsdv' MMIO write functions and don't need to
spin up a separate DG2 instance.

Bspec: 66534
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210729170008.2836648-4-matthew.d.roper@intel.com
drivers/gpu/drm/i915/intel_uncore.c