Merge tag 'drm-intel-gt-next-2023-04-06' of git://anongit.freedesktop.org/drm/drm...
[sfrench/cifs-2.6.git] / drivers / gpu / drm / i915 / gem / i915_gem_ttm_pm.c
index be644763d3bbec8a5545e143fdb2c83b2f860e7c..ad649523d5e0b094e03d9750f6df4f9f0b91b297 100644 (file)
@@ -53,7 +53,7 @@ static int i915_ttm_backup(struct i915_gem_apply_to_region *apply,
        unsigned int flags;
        int err = 0;
 
-       if (bo->resource->mem_type == I915_PL_SYSTEM || obj->ttm.backup)
+       if (!i915_ttm_cpu_maps_iomem(bo->resource) || obj->ttm.backup)
                return 0;
 
        if (pm_apply->allow_gpu && i915_gem_object_evictable(obj))
@@ -186,7 +186,10 @@ static int i915_ttm_restore(struct i915_gem_apply_to_region *apply,
                return err;
 
        /* Content may have been swapped. */
-       err = ttm_tt_populate(backup_bo->bdev, backup_bo->ttm, &ctx);
+       if (!backup_bo->resource)
+               err = ttm_bo_validate(backup_bo, i915_ttm_sys_placement(), &ctx);
+       if (!err)
+               err = ttm_tt_populate(backup_bo->bdev, backup_bo->ttm, &ctx);
        if (!err) {
                err = i915_gem_obj_copy_ttm(obj, backup, pm_apply->allow_gpu,
                                            false);