drm/i915: move engine scratch to LMEM
authorMatthew Auld <matthew.auld@intel.com>
Wed, 27 Jan 2021 13:14:16 +0000 (13:14 +0000)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 24 Mar 2021 18:30:36 +0000 (19:30 +0100)
Prefer allocating the engine scratch from LMEM on dgfx.

v2: flatten the chain

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20210127131417.393872-7-matthew.auld@intel.com
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/gt/intel_gt.c

index 9ac67e0..35ff68a 100644 (file)
@@ -4,6 +4,8 @@
  */
 
 #include "debugfs_gt.h"
+
+#include "gem/i915_gem_lmem.h"
 #include "i915_drv.h"
 #include "intel_context.h"
 #include "intel_gt.h"
@@ -378,11 +380,13 @@ static int intel_gt_init_scratch(struct intel_gt *gt, unsigned int size)
        struct i915_vma *vma;
        int ret;
 
-       obj = i915_gem_object_create_stolen(i915, size);
+       obj = i915_gem_object_create_lmem(i915, size, I915_BO_ALLOC_VOLATILE);
+       if (IS_ERR(obj))
+               obj = i915_gem_object_create_stolen(i915, size);
        if (IS_ERR(obj))
                obj = i915_gem_object_create_internal(i915, size);
        if (IS_ERR(obj)) {
-               DRM_ERROR("Failed to allocate scratch page\n");
+               drm_err(&i915->drm, "Failed to allocate scratch page\n");
                return PTR_ERR(obj);
        }