Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/xe: Better error messages for xe_gt_record_default_lrcs

Add some error messages describing the problem when
xe_gt_record_default_lrcs fails.

Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

authored by

Matthew Brost and committed by
Rodrigo Vivi
3d4451d3 33de290b

+17 -3
+17 -3
drivers/gpu/drm/xe/xe_gt.c
··· 23 23 #include "xe_gt_sysfs.h" 24 24 #include "xe_gt_tlb_invalidation.h" 25 25 #include "xe_gt_topology.h" 26 + #include "xe_guc_engine_types.h" 26 27 #include "xe_hw_fence.h" 27 28 #include "xe_irq.h" 28 29 #include "xe_lrc.h" ··· 258 257 hwe, ENGINE_FLAG_WA); 259 258 if (IS_ERR(e)) { 260 259 err = PTR_ERR(e); 260 + drm_err(&xe->drm, "gt%d, hwe %s, xe_engine_create,e failed=%d", 261 + gt->info.id, hwe->name, err); 261 262 goto put_vm; 262 263 } 263 264 264 265 /* Prime golden LRC with known good state */ 265 266 err = emit_wa_job(gt, e); 266 - if (err) 267 + if (err) { 268 + drm_err(&xe->drm, "gt%d, hwe %s, guc_id=%d, emit_wa_job,e failed=%d", 269 + gt->info.id, hwe->name, e->guc->id, err); 267 270 goto put_engine; 271 + } 268 272 269 273 nop_e = xe_engine_create(xe, vm, BIT(hwe->logical_instance), 270 274 1, hwe, ENGINE_FLAG_WA); 271 275 if (IS_ERR(nop_e)) { 272 276 err = PTR_ERR(nop_e); 277 + drm_err(&xe->drm, "gt%d, hwe %s, xe_engine_create,nop_e failed=%d", 278 + gt->info.id, hwe->name, err); 273 279 goto put_engine; 274 280 } 275 281 276 282 /* Switch to different LRC */ 277 283 err = emit_nop_job(gt, nop_e); 278 - if (err) 284 + if (err) { 285 + drm_err(&xe->drm, "gt%d, hwe %s, guc_id=%d, emit_nop_job,nop_e failed=%d", 286 + gt->info.id, hwe->name, nop_e->guc->id, err); 279 287 goto put_nop_e; 288 + } 280 289 281 290 /* Reload golden LRC to record the effect of any indirect W/A */ 282 291 err = emit_nop_job(gt, e); 283 - if (err) 292 + if (err) { 293 + drm_err(&xe->drm, "gt%d, hwe %s, guc_id=%d, emit_nop_job,e failed=%d", 294 + gt->info.id, hwe->name, e->guc->id, err); 284 295 goto put_nop_e; 296 + } 285 297 286 298 xe_map_memcpy_from(xe, default_lrc, 287 299 &e->lrc[0].bo->vmap,