diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2018-07-30 03:53:50 -0400 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2018-07-30 05:32:07 -0400 |
commit | 39f3be162c46bc2349ad7a5bd89536eb83561c81 (patch) | |
tree | 963ac95d40ab1b2bf04478299ab1ccb9f338d156 /drivers/gpu/drm/i915/intel_ringbuffer.c | |
parent | 86c1c87d0e6241cbe35bd52badfc84b154e1b959 (diff) |
drm/i915: Kick waiters on resetting legacy rings
For reasons unknown, interrupts following a reset do not arrive, but
this can be papered over by kicking any waiter and peeking at the
breadcrumbs following the reset.
Testcase: igt/gem_eio/reset-stress
References: https://bugs.freedesktop.org/show_bug.cgi?id=105957
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180730075351.15569-2-chris@chris-wilson.co.uk
Diffstat (limited to 'drivers/gpu/drm/i915/intel_ringbuffer.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_ringbuffer.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c index d1e03b7fbffa..80a8b6e57374 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c | |||
@@ -527,6 +527,8 @@ static int init_ring_common(struct intel_engine_cs *engine) | |||
527 | if (INTEL_GEN(dev_priv) > 2) | 527 | if (INTEL_GEN(dev_priv) > 2) |
528 | I915_WRITE_MODE(engine, _MASKED_BIT_DISABLE(STOP_RING)); | 528 | I915_WRITE_MODE(engine, _MASKED_BIT_DISABLE(STOP_RING)); |
529 | 529 | ||
530 | /* Papering over lost _interrupts_ immediately following the restart */ | ||
531 | intel_engine_wakeup(engine); | ||
530 | out: | 532 | out: |
531 | intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL); | 533 | intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL); |
532 | 534 | ||