drm/i915: Prepare for non-object vma
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 7 Jun 2018 15:40:45 +0000 (16:40 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 7 Jun 2018 20:53:10 +0000 (21:53 +0100)
commit520ea7c581bf3ba4761c1fb61c53b11767665b62
tree2df599f689896ec94c7f813d20b688eff689cd83
parent521370106d0d614fca76c7001bf5a82e1250fa27
drm/i915: Prepare for non-object vma

In order to allow ourselves to use VMA to wrap other entities other than
GEM objects, we need to allow for the vma->obj backpointer to be NULL.
In most cases, we know we are operating on a GEM object and its vma, but
we need the core code (such as i915_vma_pin/insert/bind/unbind) to work
regardless of the innards.

The remaining eyesore here is vma->obj->cache_level and related (but
less of an issue) vma->obj->gt_ro. With a bit of care we should mirror
those on the vma itself.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Matthew Auld <matthew.william.auld@gmail.com>
Reviewed-by: Matthew Auld <matthew.william.auld@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180607154047.9171-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_gem_gtt.c
drivers/gpu/drm/i915/i915_gpu_error.c
drivers/gpu/drm/i915/i915_vma.c
drivers/gpu/drm/i915/i915_vma.h