drm/i915: setup io-mapping for LMEM

Create an io-mapping to describe the CPU aperture for lmem.

Signed-off-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
Cc: 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/20191025153728.23689-2-chris@chris-wilson.co.uk
This commit is contained in:
Abdiel Janulgue 2019-10-25 16:37:23 +01:00 committed by Chris Wilson
parent b908be543e
commit cb6d2467ac
1 changed files with 26 additions and 2 deletions

View File

@ -9,8 +9,32 @@
#include "gem/i915_gem_region.h"
#include "intel_region_lmem.h"
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 = __i915_gem_lmem_object_create,
};