drm/xe/gt: Dump PAT table when failing to initialize

When failing on early initialization, one cause may be that the PAT
configuration is not correct. Dump it for ease of debugging.

Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://lore.kernel.org/r/20231006182325.3617685-4-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This commit is contained in:
Lucas De Marchi 2023-10-06 11:23:25 -07:00 committed by Rodrigo Vivi
parent 34803f9a4b
commit d2300987cf

View File

@ -307,6 +307,17 @@ int xe_gt_init_early(struct xe_gt *gt)
return 0;
}
static void dump_pat_on_error(struct xe_gt *gt)
{
struct drm_printer p;
char prefix[32];
snprintf(prefix, sizeof(prefix), "[GT%u Error]", gt->info.id);
p = drm_debug_printer(prefix);
xe_pat_dump(gt, &p);
}
static int gt_fw_domain_init(struct xe_gt *gt)
{
int err, i;
@ -360,6 +371,7 @@ static int gt_fw_domain_init(struct xe_gt *gt)
return 0;
err_force_wake:
dump_pat_on_error(gt);
xe_force_wake_put(gt_to_fw(gt), XE_FW_GT);
err_hw_fence_irq:
for (i = 0; i < XE_ENGINE_CLASS_MAX; ++i)