// SPDX-License-Identifier: MIT /* * Copyright © 2019 Intel Corporation */ #include "i915_drv.h" #include "intel_memory_region.h" #include "gem/i915_gem_lmem.h" #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 = region_lmem_init, .release = region_lmem_release, .create_object = __i915_gem_lmem_object_create, };