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

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>

+15 -9
+7 -7
drivers/gpu/drm/i915/intel_engine_cs.c
··· 29 29 static const struct engine_info { 30 30 const char *name; 31 31 unsigned exec_id; 32 - unsigned guc_id; 32 + enum intel_engine_hw_id hw_id; 33 33 u32 mmio_base; 34 34 unsigned irq_shift; 35 35 int (*init_legacy)(struct intel_engine_cs *engine); ··· 38 38 [RCS] = { 39 39 .name = "render ring", 40 40 .exec_id = I915_EXEC_RENDER, 41 - .guc_id = GUC_RENDER_ENGINE, 41 + .hw_id = RCS_HW, 42 42 .mmio_base = RENDER_RING_BASE, 43 43 .irq_shift = GEN8_RCS_IRQ_SHIFT, 44 44 .init_execlists = logical_render_ring_init, ··· 47 47 [BCS] = { 48 48 .name = "blitter ring", 49 49 .exec_id = I915_EXEC_BLT, 50 - .guc_id = GUC_BLITTER_ENGINE, 50 + .hw_id = BCS_HW, 51 51 .mmio_base = BLT_RING_BASE, 52 52 .irq_shift = GEN8_BCS_IRQ_SHIFT, 53 53 .init_execlists = logical_xcs_ring_init, ··· 56 56 [VCS] = { 57 57 .name = "bsd ring", 58 58 .exec_id = I915_EXEC_BSD, 59 - .guc_id = GUC_VIDEO_ENGINE, 59 + .hw_id = VCS_HW, 60 60 .mmio_base = GEN6_BSD_RING_BASE, 61 61 .irq_shift = GEN8_VCS1_IRQ_SHIFT, 62 62 .init_execlists = logical_xcs_ring_init, ··· 65 65 [VCS2] = { 66 66 .name = "bsd2 ring", 67 67 .exec_id = I915_EXEC_BSD, 68 - .guc_id = GUC_VIDEO_ENGINE2, 68 + .hw_id = VCS2_HW, 69 69 .mmio_base = GEN8_BSD2_RING_BASE, 70 70 .irq_shift = GEN8_VCS2_IRQ_SHIFT, 71 71 .init_execlists = logical_xcs_ring_init, ··· 74 74 [VECS] = { 75 75 .name = "video enhancement ring", 76 76 .exec_id = I915_EXEC_VEBOX, 77 - .guc_id = GUC_VIDEOENHANCE_ENGINE, 77 + .hw_id = VECS_HW, 78 78 .mmio_base = VEBOX_RING_BASE, 79 79 .irq_shift = GEN8_VECS_IRQ_SHIFT, 80 80 .init_execlists = logical_xcs_ring_init, ··· 93 93 engine->i915 = dev_priv; 94 94 engine->name = info->name; 95 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 97 engine->mmio_base = info->mmio_base; 98 98 engine->irq_shift = info->irq_shift; 99 99
+8 -2
drivers/gpu/drm/i915/intel_ringbuffer.h
··· 146 146 #define I915_NUM_ENGINES 5 147 147 #define _VCS(n) (VCS + (n)) 148 148 unsigned int exec_id; 149 - unsigned int hw_id; 150 - unsigned int guc_id; /* XXX same as hw_id? */ 149 + enum intel_engine_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 157 u64 fence_context; 152 158 u32 mmio_base; 153 159 unsigned int irq_shift;