drm/i915: lookup for mem_region of a mem_type
authorRamalingam C <ramalingam.c@intel.com>
Sat, 4 Jan 2020 19:10:42 +0000 (19:10 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Sun, 5 Jan 2020 01:08:09 +0000 (01:08 +0000)
Lookup function to retrieve the pointer to a memory region of
a mem_type.

v2:
  for_each_memory_region is used.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
cc: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20200104191043.2207314-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/intel_memory_region.c
drivers/gpu/drm/i915/intel_memory_region.h

index a6211cb..d0d038b 100644 (file)
@@ -16,6 +16,20 @@ const u32 intel_region_map[] = {
        [INTEL_REGION_STOLEN] = REGION_MAP(INTEL_MEMORY_STOLEN, 0),
 };
 
+struct intel_memory_region *
+intel_memory_region_by_type(struct drm_i915_private *i915,
+                           enum intel_memory_type mem_type)
+{
+       struct intel_memory_region *mr;
+       int id;
+
+       for_each_memory_region(mr, i915, id)
+               if (mr->type == mem_type)
+                       return mr;
+
+       return NULL;
+}
+
 static u64
 intel_memory_region_free_pages(struct intel_memory_region *mem,
                               struct list_head *blocks)
index 7f4bff8..232490d 100644 (file)
@@ -132,6 +132,9 @@ void intel_memory_region_put(struct intel_memory_region *mem);
 
 int intel_memory_regions_hw_probe(struct drm_i915_private *i915);
 void intel_memory_regions_driver_release(struct drm_i915_private *i915);
+struct intel_memory_region *
+intel_memory_region_by_type(struct drm_i915_private *i915,
+                           enum intel_memory_type mem_type);
 
 __printf(2, 3) void
 intel_memory_region_set_name(struct intel_memory_region *mem,