Commit 0b1d1473 authored by Daniele Ceraolo Spurio's avatar Daniele Ceraolo Spurio Committed by Rodrigo Vivi

drm/xe: common function to assign queue name

The queue name assignment is identical in both GuC and execlists
backends, so we can move it to a common function. This will make adding
a new entry in the next patch slightly cleaner.
Signed-off-by: default avatarDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Reviewed-by: default avatarMatt Roper <matthew.d.roper@intel.com>
Link: https://lore.kernel.org/r/20230817201831.1583172-2-daniele.ceraolospurio@intel.comSigned-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
parent a863b416
...@@ -177,6 +177,29 @@ void xe_exec_queue_fini(struct xe_exec_queue *q) ...@@ -177,6 +177,29 @@ void xe_exec_queue_fini(struct xe_exec_queue *q)
kfree(q); kfree(q);
} }
void xe_exec_queue_assign_name(struct xe_exec_queue *q, u32 instance)
{
switch (q->class) {
case XE_ENGINE_CLASS_RENDER:
sprintf(q->name, "rcs%d", instance);
break;
case XE_ENGINE_CLASS_VIDEO_DECODE:
sprintf(q->name, "vcs%d", instance);
break;
case XE_ENGINE_CLASS_VIDEO_ENHANCE:
sprintf(q->name, "vecs%d", instance);
break;
case XE_ENGINE_CLASS_COPY:
sprintf(q->name, "bcs%d", instance);
break;
case XE_ENGINE_CLASS_COMPUTE:
sprintf(q->name, "ccs%d", instance);
break;
default:
XE_WARN_ON(q->class);
}
}
struct xe_exec_queue *xe_exec_queue_lookup(struct xe_file *xef, u32 id) struct xe_exec_queue *xe_exec_queue_lookup(struct xe_file *xef, u32 id)
{ {
struct xe_exec_queue *q; struct xe_exec_queue *q;
......
...@@ -23,6 +23,7 @@ struct xe_exec_queue *xe_exec_queue_create_class(struct xe_device *xe, struct xe ...@@ -23,6 +23,7 @@ struct xe_exec_queue *xe_exec_queue_create_class(struct xe_device *xe, struct xe
void xe_exec_queue_fini(struct xe_exec_queue *q); void xe_exec_queue_fini(struct xe_exec_queue *q);
void xe_exec_queue_destroy(struct kref *ref); void xe_exec_queue_destroy(struct kref *ref);
void xe_exec_queue_assign_name(struct xe_exec_queue *q, u32 instance);
struct xe_exec_queue *xe_exec_queue_lookup(struct xe_file *xef, u32 id); struct xe_exec_queue *xe_exec_queue_lookup(struct xe_file *xef, u32 id);
......
...@@ -350,25 +350,7 @@ static int execlist_exec_queue_init(struct xe_exec_queue *q) ...@@ -350,25 +350,7 @@ static int execlist_exec_queue_init(struct xe_exec_queue *q)
q->execlist = exl; q->execlist = exl;
q->entity = &exl->entity; q->entity = &exl->entity;
switch (q->class) { xe_exec_queue_assign_name(q, ffs(q->logical_mask) - 1);
case XE_ENGINE_CLASS_RENDER:
sprintf(q->name, "rcs%d", ffs(q->logical_mask) - 1);
break;
case XE_ENGINE_CLASS_VIDEO_DECODE:
sprintf(q->name, "vcs%d", ffs(q->logical_mask) - 1);
break;
case XE_ENGINE_CLASS_VIDEO_ENHANCE:
sprintf(q->name, "vecs%d", ffs(q->logical_mask) - 1);
break;
case XE_ENGINE_CLASS_COPY:
sprintf(q->name, "bcs%d", ffs(q->logical_mask) - 1);
break;
case XE_ENGINE_CLASS_COMPUTE:
sprintf(q->name, "ccs%d", ffs(q->logical_mask) - 1);
break;
default:
XE_WARN_ON(q->class);
}
return 0; return 0;
......
...@@ -1167,25 +1167,7 @@ static int guc_exec_queue_init(struct xe_exec_queue *q) ...@@ -1167,25 +1167,7 @@ static int guc_exec_queue_init(struct xe_exec_queue *q)
mutex_unlock(&guc->submission_state.lock); mutex_unlock(&guc->submission_state.lock);
switch (q->class) { xe_exec_queue_assign_name(q, q->guc->id);
case XE_ENGINE_CLASS_RENDER:
sprintf(q->name, "rcs%d", q->guc->id);
break;
case XE_ENGINE_CLASS_VIDEO_DECODE:
sprintf(q->name, "vcs%d", q->guc->id);
break;
case XE_ENGINE_CLASS_VIDEO_ENHANCE:
sprintf(q->name, "vecs%d", q->guc->id);
break;
case XE_ENGINE_CLASS_COPY:
sprintf(q->name, "bcs%d", q->guc->id);
break;
case XE_ENGINE_CLASS_COMPUTE:
sprintf(q->name, "ccs%d", q->guc->id);
break;
default:
XE_WARN_ON(q->class);
}
trace_xe_exec_queue_create(q); trace_xe_exec_queue_create(q);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment