aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915
diff options
context:
space:
mode:
authorTvrtko Ursulin <tvrtko.ursulin@intel.com>2016-08-16 12:04:20 -0400
committerTvrtko Ursulin <tvrtko.ursulin@intel.com>2016-08-17 06:29:56 -0400
commit5ec2cf7e34be622968e865fa99f6b9bd4494020d (patch)
treedbe60cc30c5422f0cffda490985fe01032b012df /drivers/gpu/drm/i915
parentca99d8781fd16edf4c98536a9c18e59a17b06b6c (diff)
drm/i915: Add enum for hardware engine identifiers
Put the engine hardware id in the common header so they are not only associated with the GuC since they are needed for the legacy semaphores implementation. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r--drivers/gpu/drm/i915/intel_engine_cs.c14
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.h10
2 files changed, 15 insertions, 9 deletions
diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c b/drivers/gpu/drm/i915/intel_engine_cs.c
index 5ec8a10fd18b..8a27bb9f6bc1 100644
--- a/drivers/gpu/drm/i915/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/intel_engine_cs.c
@@ -29,7 +29,7 @@
29static const struct engine_info { 29static const struct engine_info {
30 const char *name; 30 const char *name;
31 unsigned exec_id; 31 unsigned exec_id;
32 unsigned guc_id; 32 enum intel_engine_hw_id hw_id;
33 u32 mmio_base; 33 u32 mmio_base;
34 unsigned irq_shift; 34 unsigned irq_shift;
35 int (*init_legacy)(struct intel_engine_cs *engine); 35 int (*init_legacy)(struct intel_engine_cs *engine);
@@ -38,7 +38,7 @@ static const struct engine_info {
38 [RCS] = { 38 [RCS] = {
39 .name = "render ring", 39 .name = "render ring",
40 .exec_id = I915_EXEC_RENDER, 40 .exec_id = I915_EXEC_RENDER,
41 .guc_id = GUC_RENDER_ENGINE, 41 .hw_id = RCS_HW,
42 .mmio_base = RENDER_RING_BASE, 42 .mmio_base = RENDER_RING_BASE,
43 .irq_shift = GEN8_RCS_IRQ_SHIFT, 43 .irq_shift = GEN8_RCS_IRQ_SHIFT,
44 .init_execlists = logical_render_ring_init, 44 .init_execlists = logical_render_ring_init,
@@ -47,7 +47,7 @@ static const struct engine_info {
47 [BCS] = { 47 [BCS] = {
48 .name = "blitter ring", 48 .name = "blitter ring",
49 .exec_id = I915_EXEC_BLT, 49 .exec_id = I915_EXEC_BLT,
50 .guc_id = GUC_BLITTER_ENGINE, 50 .hw_id = BCS_HW,
51 .mmio_base = BLT_RING_BASE, 51 .mmio_base = BLT_RING_BASE,
52 .irq_shift = GEN8_BCS_IRQ_SHIFT, 52 .irq_shift = GEN8_BCS_IRQ_SHIFT,
53 .init_execlists = logical_xcs_ring_init, 53 .init_execlists = logical_xcs_ring_init,
@@ -56,7 +56,7 @@ static const struct engine_info {
56 [VCS] = { 56 [VCS] = {
57 .name = "bsd ring", 57 .name = "bsd ring",
58 .exec_id = I915_EXEC_BSD, 58 .exec_id = I915_EXEC_BSD,
59 .guc_id = GUC_VIDEO_ENGINE, 59 .hw_id = VCS_HW,
60 .mmio_base = GEN6_BSD_RING_BASE, 60 .mmio_base = GEN6_BSD_RING_BASE,
61 .irq_shift = GEN8_VCS1_IRQ_SHIFT, 61 .irq_shift = GEN8_VCS1_IRQ_SHIFT,
62 .init_execlists = logical_xcs_ring_init, 62 .init_execlists = logical_xcs_ring_init,
@@ -65,7 +65,7 @@ static const struct engine_info {
65 [VCS2] = { 65 [VCS2] = {
66 .name = "bsd2 ring", 66 .name = "bsd2 ring",
67 .exec_id = I915_EXEC_BSD, 67 .exec_id = I915_EXEC_BSD,
68 .guc_id = GUC_VIDEO_ENGINE2, 68 .hw_id = VCS2_HW,
69 .mmio_base = GEN8_BSD2_RING_BASE, 69 .mmio_base = GEN8_BSD2_RING_BASE,
70 .irq_shift = GEN8_VCS2_IRQ_SHIFT, 70 .irq_shift = GEN8_VCS2_IRQ_SHIFT,
71 .init_execlists = logical_xcs_ring_init, 71 .init_execlists = logical_xcs_ring_init,
@@ -74,7 +74,7 @@ static const struct engine_info {
74 [VECS] = { 74 [VECS] = {
75 .name = "video enhancement ring", 75 .name = "video enhancement ring",
76 .exec_id = I915_EXEC_VEBOX, 76 .exec_id = I915_EXEC_VEBOX,
77 .guc_id = GUC_VIDEOENHANCE_ENGINE, 77 .hw_id = VECS_HW,
78 .mmio_base = VEBOX_RING_BASE, 78 .mmio_base = VEBOX_RING_BASE,
79 .irq_shift = GEN8_VECS_IRQ_SHIFT, 79 .irq_shift = GEN8_VECS_IRQ_SHIFT,
80 .init_execlists = logical_xcs_ring_init, 80 .init_execlists = logical_xcs_ring_init,
@@ -93,7 +93,7 @@ intel_engine_setup(struct drm_i915_private *dev_priv,
93 engine->i915 = dev_priv; 93 engine->i915 = dev_priv;
94 engine->name = info->name; 94 engine->name = info->name;
95 engine->exec_id = info->exec_id; 95 engine->exec_id = info->exec_id;
96 engine->hw_id = engine->guc_id = info->guc_id; 96 engine->hw_id = engine->guc_id = info->hw_id;
97 engine->mmio_base = info->mmio_base; 97 engine->mmio_base = info->mmio_base;
98 engine->irq_shift = info->irq_shift; 98 engine->irq_shift = info->irq_shift;
99 99
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h
index e3777572c70e..9d723c24eeff 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.h
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.h
@@ -146,8 +146,14 @@ struct intel_engine_cs {
146#define I915_NUM_ENGINES 5 146#define I915_NUM_ENGINES 5
147#define _VCS(n) (VCS + (n)) 147#define _VCS(n) (VCS + (n))
148 unsigned int exec_id; 148 unsigned int exec_id;
149 unsigned int hw_id; 149 enum intel_engine_hw_id {
150 unsigned int guc_id; /* XXX same as hw_id? */ 150 RCS_HW = 0,
151 VCS_HW,
152 BCS_HW,
153 VECS_HW,
154 VCS2_HW
155 } hw_id;
156 enum intel_engine_hw_id guc_id; /* XXX same as hw_id? */
151 u64 fence_context; 157 u64 fence_context;
152 u32 mmio_base; 158 u32 mmio_base;
153 unsigned int irq_shift; 159 unsigned int irq_shift;