Blob Blame History Raw
From 6e516148f35401029ac920e323cce34266c22e6d Mon Sep 17 00:00:00 2001
From: Oscar Mateo <oscar.mateo@intel.com>
Date: Mon, 10 Apr 2017 07:34:31 -0700
Subject: [PATCH] drm/i915: Generate the engine name based on the instance number
Git-commit: 6e516148f35401029ac920e323cce34266c22e6d
Patch-mainline: v4.13-rc1
References: FATE#322643 bsc#1055900

Not really needed, but makes the next change a little bit more compact.

V2: - Use zero-based numbering for engine names: xcs0, xcs1.. xcsN (Tvrtko, Chris)  - Make sure the mock engine name is null-terminated (Tvrtko, Chris)

V3: Because I'm stupid (Chris)

V4: Verify engine name wasn't truncated (Michal)

V5: - Kill the warning in mock engine (Chris)

Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1491834873-9345-4-git-send-email-oscar.mateo@intel.com
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Takashi Iwai <tiwai@suse.de>

---
 drivers/gpu/drm/i915/intel_engine_cs.c       |    5 +++--
 drivers/gpu/drm/i915/intel_ringbuffer.h      |    4 +++-
 drivers/gpu/drm/i915/selftests/mock_engine.c |    2 +-
 3 files changed, 7 insertions(+), 4 deletions(-)

--- a/drivers/gpu/drm/i915/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/intel_engine_cs.c
@@ -71,7 +71,7 @@ static const struct engine_info {
 		.init_legacy = intel_init_bsd_ring_buffer,
 	},
 	[VCS2] = {
-		.name = "vcs2",
+		.name = "vcs",
 		.hw_id = VCS2_HW,
 		.exec_id = I915_EXEC_BSD,
 		.class = VIDEO_DECODE_CLASS,
@@ -108,7 +108,8 @@ intel_engine_setup(struct drm_i915_priva
 
 	engine->id = id;
 	engine->i915 = dev_priv;
-	engine->name = info->name;
+	WARN_ON(snprintf(engine->name, sizeof(engine->name), "%s%u",
+			 info->name, info->instance) >= sizeof(engine->name));
 	engine->exec_id = info->exec_id;
 	engine->hw_id = engine->guc_id = info->hw_id;
 	engine->mmio_base = info->mmio_base;
--- a/drivers/gpu/drm/i915/intel_ringbuffer.h
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.h
@@ -188,9 +188,11 @@ enum intel_engine_id {
 	VECS
 };
 
+#define INTEL_ENGINE_CS_MAX_NAME 8
+
 struct intel_engine_cs {
 	struct drm_i915_private *i915;
-	const char	*name;
+	char name[INTEL_ENGINE_CS_MAX_NAME];
 	enum intel_engine_id id;
 	unsigned int exec_id;
 	unsigned int hw_id;
--- a/drivers/gpu/drm/i915/selftests/mock_engine.c
+++ b/drivers/gpu/drm/i915/selftests/mock_engine.c
@@ -140,7 +140,7 @@ struct intel_engine_cs *mock_engine(stru
 
 	/* minimal engine setup for requests */
 	engine->base.i915 = i915;
-	engine->base.name = name;
+	snprintf(engine->base.name, sizeof(engine->base.name), "%s", name);
 	engine->base.id = id++;
 	engine->base.status_page.page_addr = (void *)(engine + 1);