From: Abdiel Janulgue <abdiel.janul...@linux.intel.com>

Signed-off-by: Abdiel Janulgue <abdiel.janul...@linux.intel.com>
Cc: Matthew Auld <matthew.a...@intel.com>
---
 drivers/gpu/drm/i915/intel_region_lmem.c | 28 ++++++++++++++++++++++--
 1 file changed, 26 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_region_lmem.c 
b/drivers/gpu/drm/i915/intel_region_lmem.c
index ca906d1ff631..7f1543e2759c 100644
--- a/drivers/gpu/drm/i915/intel_region_lmem.c
+++ b/drivers/gpu/drm/i915/intel_region_lmem.c
@@ -41,8 +41,32 @@ lmem_create_object(struct intel_memory_region *mem,
        return obj;
 }
 
+static void
+region_lmem_release(struct intel_memory_region *mem)
+{
+       io_mapping_fini(&mem->iomap);
+       intel_memory_region_release_buddy(mem);
+}
+
+static int
+region_lmem_init(struct intel_memory_region *mem)
+{
+       int ret;
+
+       if (!io_mapping_init_wc(&mem->iomap,
+                               mem->io_start,
+                               resource_size(&mem->region)))
+               return -EIO;
+
+       ret = intel_memory_region_init_buddy(mem);
+       if (ret)
+               io_mapping_fini(&mem->iomap);
+
+       return ret;
+}
+
 const struct intel_memory_region_ops intel_region_lmem_ops = {
-       .init = intel_memory_region_init_buddy,
-       .release = intel_memory_region_release_buddy,
+       .init = region_lmem_init,
+       .release = region_lmem_release,
        .create_object = lmem_create_object,
 };
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to