From da1184cd41d4c6b316a937ac1da5825807e8f6fb Mon Sep 17 00:00:00 2001 From: Matthew Auld Date: Fri, 18 Oct 2019 10:07:50 +0100 Subject: drm/i915: treat shmem as a region Convert shmem to an intel_memory_region. Signed-off-by: Matthew Auld Cc: Joonas Lahtinen Cc: Abdiel Janulgue Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20191018090751.28295-2-matthew.auld@intel.com --- drivers/gpu/drm/i915/i915_gem_gtt.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'drivers/gpu/drm/i915/i915_gem_gtt.c') diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c index 7b8e30c72f86..263f1cea0b64 100644 --- a/drivers/gpu/drm/i915/i915_gem_gtt.c +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c @@ -2773,14 +2773,29 @@ int i915_gem_init_memory_regions(struct drm_i915_private *i915) for (i = 0; i < INTEL_REGION_UNKNOWN; i++) { struct intel_memory_region *mem = ERR_PTR(-ENODEV); + u32 type; if (!HAS_REGION(i915, BIT(i))) continue; + type = MEMORY_TYPE_FROM_REGION(intel_region_map[i]); + switch (type) { + case INTEL_MEMORY_SYSTEM: + mem = i915_gem_shmem_setup(i915); + break; + } + if (IS_ERR(mem)) { err = PTR_ERR(mem); + DRM_ERROR("Failed to setup region(%d) type=%d\n", err, type); goto out_cleanup; } + + mem->id = intel_region_map[i]; + mem->type = type; + mem->instance = MEMORY_INSTANCE_FROM_REGION(intel_region_map[i]); + + i915->mm.regions[i] = mem; } return 0; -- cgit