drm/i915: move gen8 irq shifts to intel_lrc.c
The only usage outside the intel_lrc.c file is in the ringbuffer init, but the irq mask calculated there is then overwritten for all engines that have a non-zero shift, so we can drop it. This change is not aimed at code saving but at removing from intel_engines information that does not apply to all gens that have the engine. When checking without the temporary WARN_ON, code size is basically unchanged. v2: make the irq_shifts array static const v3: rebase, move irq_shifts array to logical_ring_default_irqs v4: move array inside the if and use u8 for it (Chris) Suggested-by: Michel Thierry <michel.thierry@intel.com> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Link: https://patchwork.freedesktop.org/patch/msgid/20180314182653.26981-4-daniele.ceraolospurio@intel.com
This commit is contained in:

committed by
Chris Wilson

parent
210060edc2
commit
fa6f071d54
@@ -2118,7 +2118,20 @@ logical_ring_default_vfuncs(struct intel_engine_cs *engine)
|
||||
static inline void
|
||||
logical_ring_default_irqs(struct intel_engine_cs *engine)
|
||||
{
|
||||
unsigned shift = engine->irq_shift;
|
||||
unsigned int shift = 0;
|
||||
|
||||
if (INTEL_GEN(engine->i915) < 11) {
|
||||
const u8 irq_shifts[] = {
|
||||
[RCS] = GEN8_RCS_IRQ_SHIFT,
|
||||
[BCS] = GEN8_BCS_IRQ_SHIFT,
|
||||
[VCS] = GEN8_VCS1_IRQ_SHIFT,
|
||||
[VCS2] = GEN8_VCS2_IRQ_SHIFT,
|
||||
[VECS] = GEN8_VECS_IRQ_SHIFT,
|
||||
};
|
||||
|
||||
shift = irq_shifts[engine->id];
|
||||
}
|
||||
|
||||
engine->irq_enable_mask = GT_RENDER_USER_INTERRUPT << shift;
|
||||
engine->irq_keep_mask = GT_CONTEXT_SWITCH_INTERRUPT << shift;
|
||||
}
|
||||
|
Reference in New Issue
Block a user