diff options
| author | Abdiel Janulgue <abdiel.janulgue@linux.intel.com> | 2019-10-25 16:37:23 +0100 |
|---|---|---|
| committer | Chris Wilson <chris@chris-wilson.co.uk> | 2019-10-25 22:55:37 +0100 |
| commit | cb6d2467ace7fb50203ff3900c31d01c7670ff6f (patch) | |
| tree | 31197f6b54934b5569c9bfbd384f33f06caf85da | |
| parent | b908be543e4441476916f2ae36cebc95cb187436 (diff) | |
| download | linux-cb6d2467ace7fb50203ff3900c31d01c7670ff6f.tar.gz linux-cb6d2467ace7fb50203ff3900c31d01c7670ff6f.tar.bz2 linux-cb6d2467ace7fb50203ff3900c31d01c7670ff6f.zip | |
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
| -rw-r--r-- | drivers/gpu/drm/i915/intel_region_lmem.c | 28 |
1 files 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 199532056e1b..9a351af45ce6 100644 --- a/drivers/gpu/drm/i915/intel_region_lmem.c +++ b/drivers/gpu/drm/i915/intel_region_lmem.c @@ -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, }; |
