]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Use ordered seqno write interrupt generation on gen8+ execlists
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 20 Jan 2016 13:43:35 +0000 (15:43 +0200)
committerMika Kuoppala <mika.kuoppala@intel.com>
Thu, 21 Jan 2016 09:53:09 +0000 (11:53 +0200)
commit77db8f5c7494133efa044a842ead349665e85fd2
tree281cb5f9c84305eb1082a1f2bb93bd42bc1b2165
parent57badd60aff4075b6f8f6797a50ac1bad3e2455e
drm/i915: Use ordered seqno write interrupt generation on gen8+ execlists

Broadwell and later currently use the same unordered command sequence to
update the seqno in the HWS status page and then assert the user
interrupt. We should apply the w/a from legacy (where we do an mmio
read to delay the seqno read after the interrupt), but this is not
enough to enforce coherent seqno visibilty on Skylake. Rather than
search for the proper post-interrupt seqno barrier, use a strongly
ordered command sequence to write the seqno, then assert the user
interrupt from the ring.

v2: Move around the wa tail dwords to avoid adding duplicate code.

v3: Add references, comments on workarounds and bit5 check.

References: https://bugs.freedesktop.org/show_bug.cgi?id=93693
Testcase: igt/gem_ring_sync_loop #skl
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1453297415-17793-1-git-send-email-mika.kuoppala@intel.com
drivers/gpu/drm/i915/intel_lrc.c
drivers/gpu/drm/i915/intel_ringbuffer.h