Hi all, This patches here make bindings to the global gtt optional and are hence preparation work for real per-process gtts. They also have the benefits that we have fewer changes of randomly scribbling over things. The funky part here is the snb workaround, but we have a testcase for that. And the workaround is indeed necessary because I've fumbled the relocation domains in the test such that the workaround did not kick in. And the test broke. But with the fixed up test everything works as advertised. The last patch also announces ppgtt hw support to userspace. This is useful because certian MI instructions only work correctly with ppgtt enabled (currently we don't use these for obvious reasons). I'd like to merge this after qa has sufficiently beaten up the current basic aliasing ppgtt implementation (and presuming nothing blows up there). Review, flames and comments highly welcome. Yours, Daniel Daniel Vetter (5): drm/i915: split out dma mapping from global gtt bind/unbind functions drm/i915: bind objects to the global gtt only when needed drm/i915: implement SNB workaround for lazy global gtt drm/i915: enable lazy global-gtt binding drm/i915: add HAS_ALIASING_PPGTT parameter for userspace drivers/gpu/drm/i915/i915_dma.c | 3 ++ drivers/gpu/drm/i915/i915_drv.h | 6 ++- drivers/gpu/drm/i915/i915_gem.c | 18 ++++++++-- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 15 ++++++++- drivers/gpu/drm/i915/i915_gem_gtt.c | 49 ++++++++++++---------------- drivers/gpu/drm/i915/i915_irq.c | 3 +- include/drm/i915_drm.h | 3 +- 7 files changed, 61 insertions(+), 36 deletions(-) -- 1.7.9