summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_gem_gtt.c
diff options
context:
space:
mode:
authorChris Wilson2018-06-01 11:35:50 +0200
committerChris Wilson2018-06-01 15:53:40 +0200
commit3df845e7528b4f337e5cf91f3fd75610a646b259 (patch)
tree427a1eab8515185c67146176dbed7dcc54e49138 /drivers/gpu/drm/i915/i915_gem_gtt.c
parentdrm/i915/gtt: Avoid calling non-existent allocate_va_range (diff)
downloadkernel-qcow2-linux-3df845e7528b4f337e5cf91f3fd75610a646b259.tar.gz
kernel-qcow2-linux-3df845e7528b4f337e5cf91f3fd75610a646b259.tar.xz
kernel-qcow2-linux-3df845e7528b4f337e5cf91f3fd75610a646b259.zip
drm/i915/gtt: Don't restore the non-existent PDE for GGTT
On resume, we have to rewrite all the PDE entries for gen7 ppgtts. If we switch on full-ppgtt, there is then one address space with no PDE, the GGTT. Currently under aliasing-ppgtt, the GGTT address space does have an associated ppgtt and so the restore works just fine. We would have a similar problem if we tried disabling aliasing-ppgtt (i915.enable_ppgtt=0). So skip the empty ppgtt, as being non-existent it doesn't need restoring. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180601093554.13083-2-chris@chris-wilson.co.uk Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem_gtt.c')
-rw-r--r--drivers/gpu/drm/i915/i915_gem_gtt.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index ec60be48919b..d032069819cc 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -3665,6 +3665,8 @@ void i915_gem_restore_gtt_mappings(struct drm_i915_private *dev_priv)
ppgtt = dev_priv->mm.aliasing_ppgtt;
else
ppgtt = i915_vm_to_ppgtt(vm);
+ if (!ppgtt)
+ continue;
gen6_write_page_range(ppgtt, 0, ppgtt->base.total);
}