]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
drm/i915: Keep the rings stopped until they have been re-initialized
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 13 Oct 2017 13:12:17 +0000 (14:12 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 13 Oct 2017 19:57:29 +0000 (20:57 +0100)
commit7836cd02f27c03af2fca04b450177c51fc7caf1e
treeb66fc4309c1fe8701161df78d182bdc38c24e470
parent5d031f4e1618b64344713b8e4f864a6ccc1f31cf
drm/i915: Keep the rings stopped until they have been re-initialized

Before modifying the ring register (RING_START, HEAD, TAIL, CTL) we
first make sure it is stopped (or else the hw may not resample the
registers). However, we do not need to let the hw restart until after we
have reprogrammed all the rings. This should help prevent situations
where pending operations on the ring may resume (because we are trying
to re-initialize following an unsuccessful GPU hang, i.e. from
i915_gem_unset_wedged).

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103260
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171013131218.18013-1-chris@chris-wilson.co.uk
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
drivers/gpu/drm/i915/intel_ringbuffer.c