]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Flush TLBs after !RCS PP_DIR_BASE
authorBen Widawsky <benjamin.widawsky@intel.com>
Fri, 6 Dec 2013 22:11:12 +0000 (14:11 -0800)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 18 Dec 2013 14:29:13 +0000 (15:29 +0100)
commit08f44bfc23c9ef908445b001bc49b0a41c749509
tree9fe0d0688fbdf9e8e735af673a3329e5dabc009a
parent65ef4467a05d9e2e0b0c07b97cc5d782142ff461
drm/i915: Flush TLBs after !RCS PP_DIR_BASE

I've found this by accident. The docs don't really come out and say you
need to do this. What the docs do tell you is you need to flush the TLBs
before you set the PP_DIR_BASE, and that the RCS will invalidate its
TLBs upon setting the new PP_DIR_BASE. It makes no such comment about
any of the other rings.

Empirically, this indeed fixes a really obvious bug whereby the batches
being sent to the blitter were not executing (we were executing the
HSWP somehow instead).

NOTE: This should make no difference with the current code. It only
applies when we start using multiple VMs.

NOTE2: HSW appears to be immune to this.

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_gem_gtt.c