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)
commit7c17d377374ddbcfb7873366559fc4ed8b296e11
tree281cb5f9c84305eb1082a1f2bb93bd42bc1b2165
parentc81eeea6c14b212016104f4256c65f93ad230a86
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
This page took 0.025195 seconds and 5 git commands to generate.