drm/i915/gt: Ignore irq enabling on the virtual engines
We do not use the virtual engines for interrupts (they have physical
components), but we do use them to decouple the fence signaling during
submission. Currently, when we submit a completed request, we try to
enable the interrupt handler for the virtual engine, but we never disarm
it. A quick fix is then to mark the irq as enabled, and it will then
remain enabled -- and this prevents us from waking the device and never
letting it sleep again.
Fixes: f8db4d051b
("drm/i915: Initialise breadcrumb lists on the virtual engine")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: <stable@vger.kernel.org> # v5.5+
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200711203236.12330-1-chris@chris-wilson.co.uk
zero-sugar-mainline-defconfig
parent
2730055dcb
commit
4fe6abb8f5
|
@ -5724,6 +5724,7 @@ intel_execlists_create_virtual(struct intel_engine_cs **siblings,
|
|||
intel_engine_init_active(&ve->base, ENGINE_VIRTUAL);
|
||||
intel_engine_init_breadcrumbs(&ve->base);
|
||||
intel_engine_init_execlists(&ve->base);
|
||||
ve->base.breadcrumbs.irq_armed = true; /* fake HW, used for irq_work */
|
||||
|
||||
ve->base.cops = &virtual_context_ops;
|
||||
ve->base.request_alloc = execlists_request_alloc;
|
||||
|
|
Loading…
Reference in New Issue