Any rules using engine matching are currently broken due RTP processing happening too in early init, before the list of hardware engines has been initialised.
Fix this by moving workaround processing to later in the driver probe sequence, to just before the processed list is used for the first time.
Looking at the debugfs gt0/workarounds on ADL-P we notice 14011060649 should be present while we see, before:
GT Workarounds 14011059788 14015795083
And with the patch:
GT Workarounds 14011060649 14011059788 14015795083
Signed-off-by: Tvrtko Ursulin tvrtko.ursulin@igalia.com Cc: Lucas De Marchi lucas.demarchi@intel.com Cc: Matt Roper matthew.d.roper@intel.com Cc: stable@vger.kernel.org # v6.11+ Reviewed-by: Lucas De Marchi lucas.demarchi@intel.com --- drivers/gpu/drm/xe/xe_gt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c index 650a0ee56e97..d59c03bc05b7 100644 --- a/drivers/gpu/drm/xe/xe_gt.c +++ b/drivers/gpu/drm/xe/xe_gt.c @@ -361,9 +361,7 @@ int xe_gt_init_early(struct xe_gt *gt) if (err) return err;
- xe_wa_process_gt(gt); xe_wa_process_oob(gt); - xe_tuning_process_gt(gt);
xe_force_wake_init_gt(gt, gt_to_fw(gt)); spin_lock_init(>->global_invl_lock); @@ -450,6 +448,8 @@ static int all_fw_domain_init(struct xe_gt *gt) }
xe_gt_mcr_set_implicit_defaults(gt); + xe_wa_process_gt(gt); + xe_tuning_process_gt(gt); xe_reg_sr_apply_mmio(>->reg_sr, gt);
err = xe_gt_clock_init(gt);
linux-stable-mirror@lists.linaro.org