summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/xe/xe_execlist.c
diff options
context:
space:
mode:
authorMatt Roper <matthew.d.roper@intel.com>2023-02-23 21:57:39 +0300
committerRodrigo Vivi <rodrigo.vivi@intel.com>2023-12-20 02:29:43 +0300
commitf659ac1564d96b1ba19694db9899d6fb18ffc3e7 (patch)
treea361d2e2d7efbfea9995c4717f836448f052572b /drivers/gpu/drm/xe/xe_execlist.c
parentee17e7f34a5e8a996da0c54e31584c5b089d65ff (diff)
downloadlinux-f659ac1564d96b1ba19694db9899d6fb18ffc3e7.tar.xz
drm/xe/mocs: LNCF MOCS settings only need to be restored on pre-Xe_HP
Reprogramming the LNCF MOCS registers on render domain reset is not intended to be regular driver programming, but rather the implementation of a specific workaround (Wa_1607983814). This workaround no longer applies on Xe_HP any beyond, so we can expect that these registers, like the rest of the LNCF/LBCF registers, will maintain their values through all engine resets. We should only add these registers to the GuC's save/restore list on platforms that need the workaround. Furthermore, xe_mocs_init_engine() appears to be another attempt to satisfy this same workaround. This is unnecessary on the Xe driver since even on platforms where the workaround is necessary, all single-engine resets are initiated by the GuC and thus the GuC will take care of saving/restoring these registers. The only host-initiated resets we have in Xe are full GT resets which will already (re)initialize these registers as part of the regular xe_mocs_init() flow. v2: - Add needs_wa_1607983814() so that calculate_regset_size() doesn't overallocate regset space when the workaround isn't needed. (Lucas) - On platforms affected by Wa_1607983814, only add the LNCF MOCS registers to the render engine's GuC save/restore list; resets of other engines don't need to save/restore these. Cc: Lucas De Marchi <lucas.demarchi@intel.com> Signed-off-by: Matt Roper <matthew.d.roper@intel.com> Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Diffstat (limited to 'drivers/gpu/drm/xe/xe_execlist.c')
-rw-r--r--drivers/gpu/drm/xe/xe_execlist.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/xe/xe_execlist.c b/drivers/gpu/drm/xe/xe_execlist.c
index be47d28da4c7..ae7ee56f1b1b 100644
--- a/drivers/gpu/drm/xe/xe_execlist.c
+++ b/drivers/gpu/drm/xe/xe_execlist.c
@@ -460,7 +460,7 @@ static void execlist_engine_suspend_wait(struct xe_engine *e)
static void execlist_engine_resume(struct xe_engine *e)
{
- xe_mocs_init_engine(e);
+ /* NIY */
}
static const struct xe_engine_ops execlist_engine_ops = {