From 0b1d1473b355ff3a1447048db24822eb7016c1c2 Mon Sep 17 00:00:00 2001 From: Daniele Ceraolo Spurio Date: Thu, 17 Aug 2023 13:18:25 -0700 Subject: [PATCH] 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: Daniele Ceraolo Spurio Reviewed-by: Matt Roper Link: https://lore.kernel.org/r/20230817201831.1583172-2-daniele.ceraolospurio@intel.com Signed-off-by: Rodrigo Vivi --- drivers/gpu/drm/xe/xe_exec_queue.c | 23 +++++++++++++++++++++++ drivers/gpu/drm/xe/xe_exec_queue.h | 1 + drivers/gpu/drm/xe/xe_execlist.c | 20 +------------------- drivers/gpu/drm/xe/xe_guc_submit.c | 20 +------------------- 4 files changed, 26 insertions(+), 38 deletions(-) diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c index 901c609a657e6..c2adff7706142 100644 --- a/drivers/gpu/drm/xe/xe_exec_queue.c +++ b/drivers/gpu/drm/xe/xe_exec_queue.c @@ -177,6 +177,29 @@ void xe_exec_queue_fini(struct xe_exec_queue *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 *q; diff --git a/drivers/gpu/drm/xe/xe_exec_queue.h b/drivers/gpu/drm/xe/xe_exec_queue.h index 94a6abee38a60..22499a2f522b4 100644 --- a/drivers/gpu/drm/xe/xe_exec_queue.h +++ b/drivers/gpu/drm/xe/xe_exec_queue.h @@ -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_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); diff --git a/drivers/gpu/drm/xe/xe_execlist.c b/drivers/gpu/drm/xe/xe_execlist.c index 3b8be55fe19c9..df91780d8b9f9 100644 --- a/drivers/gpu/drm/xe/xe_execlist.c +++ b/drivers/gpu/drm/xe/xe_execlist.c @@ -350,25 +350,7 @@ static int execlist_exec_queue_init(struct xe_exec_queue *q) q->execlist = exl; q->entity = &exl->entity; - switch (q->class) { - 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); - } + xe_exec_queue_assign_name(q, ffs(q->logical_mask) - 1); return 0; diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c index 8ecfe2b15e284..55c7b13d15ecc 100644 --- a/drivers/gpu/drm/xe/xe_guc_submit.c +++ b/drivers/gpu/drm/xe/xe_guc_submit.c @@ -1167,25 +1167,7 @@ static int guc_exec_queue_init(struct xe_exec_queue *q) mutex_unlock(&guc->submission_state.lock); - switch (q->class) { - 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); - } + xe_exec_queue_assign_name(q, q->guc->id); trace_xe_exec_queue_create(q); -- 2.30.2