drm/xe/wa: Apply tile workarounds at probe/resume
authorMatt Roper <matthew.d.roper@intel.com>
Wed, 13 Sep 2023 23:14:17 +0000 (16:14 -0700)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 21 Dec 2023 16:41:14 +0000 (11:41 -0500)
commit0d0534750f9d4575abf0da3b41a78e5643e6c8dd
tree8904cc887a08011c5ae8ca289f71c03746f79cf2
parent7764222d54b71a9577cff9296420bf0a780b0c5d
drm/xe/wa: Apply tile workarounds at probe/resume

Although the vast majority of workarounds the driver needs to implement
are either GT-based or display-based, there are occasionally workarounds
that reside outside those parts of the hardware (i.e., in they target
registers in the sgunit/soc); we can consider these to be "tile"
workarounds since there will be instance of these registers per tile.
The registers in question should only lose their values during a
function-level reset, so they only need to be applied during probe and
resume; the registers will not be affected by GT/engine resets.

Tile workarounds are rare (there's only one, 22010954014, that's
relevant to Xe at the moment) so it's probably not worth updating the
xe_rtp design to handle tile-level workarounds yet, although we may want
to consider that in the future if/when more of these show up on future
platforms.

Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
Link: https://lore.kernel.org/r/20230913231411.291933-13-matthew.d.roper@intel.com
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/regs/xe_regs.h
drivers/gpu/drm/xe/xe_pm.c
drivers/gpu/drm/xe/xe_tile.c
drivers/gpu/drm/xe/xe_wa.c
drivers/gpu/drm/xe/xe_wa.h
drivers/gpu/drm/xe/xe_wa_oob.rules