Lines Matching full:mem
36 static int __iopagetest(struct intel_memory_region *mem, in __iopagetest() argument
51 dev_err(mem->i915->drm.dev, in __iopagetest()
53 &mem->region, &mem->io.start, &offset, caller, in __iopagetest()
61 static int iopagetest(struct intel_memory_region *mem, in iopagetest() argument
70 va = ioremap_wc(mem->io.start + offset, PAGE_SIZE); in iopagetest()
72 dev_err(mem->i915->drm.dev, in iopagetest()
74 &mem->io.start, &offset, caller); in iopagetest()
79 err = __iopagetest(mem, va, PAGE_SIZE, val[i], offset, caller); in iopagetest()
83 err = __iopagetest(mem, va, PAGE_SIZE, ~val[i], offset, caller); in iopagetest()
98 static int iomemtest(struct intel_memory_region *mem, in iomemtest() argument
105 if (resource_size(&mem->io) < PAGE_SIZE) in iomemtest()
108 last = resource_size(&mem->io) - PAGE_SIZE; in iomemtest()
123 err = iopagetest(mem, page, caller); in iomemtest()
128 err = iopagetest(mem, 0, caller); in iomemtest()
132 err = iopagetest(mem, last, caller); in iomemtest()
136 err = iopagetest(mem, random_page(last), caller); in iomemtest()
176 * @mem: The region for which we want to reserve a range.
182 int intel_memory_region_reserve(struct intel_memory_region *mem, in intel_memory_region_reserve() argument
186 struct ttm_resource_manager *man = mem->region_private; in intel_memory_region_reserve()
188 GEM_BUG_ON(mem->is_range_manager); in intel_memory_region_reserve()
204 static int intel_memory_region_memtest(struct intel_memory_region *mem, in intel_memory_region_memtest() argument
207 struct drm_i915_private *i915 = mem->i915; in intel_memory_region_memtest()
210 if (!mem->io.start) in intel_memory_region_memtest()
214 err = iomemtest(mem, i915->params.memtest, caller); in intel_memory_region_memtest()
246 struct intel_memory_region *mem; in intel_memory_region_create() local
249 mem = kzalloc(sizeof(*mem), GFP_KERNEL); in intel_memory_region_create()
250 if (!mem) in intel_memory_region_create()
253 mem->i915 = i915; in intel_memory_region_create()
254 mem->region = DEFINE_RES_MEM(start, size); in intel_memory_region_create()
255 mem->io = DEFINE_RES_MEM(io_start, io_size); in intel_memory_region_create()
256 mem->min_page_size = min_page_size; in intel_memory_region_create()
257 mem->ops = ops; in intel_memory_region_create()
258 mem->total = size; in intel_memory_region_create()
259 mem->type = type; in intel_memory_region_create()
260 mem->instance = instance; in intel_memory_region_create()
262 snprintf(mem->uabi_name, sizeof(mem->uabi_name), "%s%u", in intel_memory_region_create()
265 mutex_init(&mem->objects.lock); in intel_memory_region_create()
266 INIT_LIST_HEAD(&mem->objects.list); in intel_memory_region_create()
269 err = ops->init(mem); in intel_memory_region_create()
274 err = intel_memory_region_memtest(mem, (void *)_RET_IP_); in intel_memory_region_create()
278 return mem; in intel_memory_region_create()
281 if (mem->ops->release) in intel_memory_region_create()
282 mem->ops->release(mem); in intel_memory_region_create()
284 kfree(mem); in intel_memory_region_create()
288 void intel_memory_region_set_name(struct intel_memory_region *mem, in intel_memory_region_set_name() argument
294 vsnprintf(mem->name, sizeof(mem->name), fmt, ap); in intel_memory_region_set_name()
312 void intel_memory_region_destroy(struct intel_memory_region *mem) in intel_memory_region_destroy() argument
316 if (mem->ops->release) in intel_memory_region_destroy()
317 ret = mem->ops->release(mem); in intel_memory_region_destroy()
319 GEM_WARN_ON(!list_empty_careful(&mem->objects.list)); in intel_memory_region_destroy()
320 mutex_destroy(&mem->objects.lock); in intel_memory_region_destroy()
322 kfree(mem); in intel_memory_region_destroy()
332 struct intel_memory_region *mem = ERR_PTR(-ENODEV); in intel_memory_regions_hw_probe() local
343 mem = i915_gem_ttm_system_setup(i915, type, in intel_memory_regions_hw_probe()
346 mem = i915_gem_shmem_setup(i915, type, in intel_memory_regions_hw_probe()
350 mem = i915_gem_stolen_lmem_setup(i915, type, instance); in intel_memory_regions_hw_probe()
351 if (!IS_ERR(mem)) in intel_memory_regions_hw_probe()
352 i915->mm.stolen_region = mem; in intel_memory_regions_hw_probe()
355 mem = i915_gem_stolen_smem_setup(i915, type, instance); in intel_memory_regions_hw_probe()
356 if (!IS_ERR(mem)) in intel_memory_regions_hw_probe()
357 i915->mm.stolen_region = mem; in intel_memory_regions_hw_probe()
363 if (IS_ERR(mem)) { in intel_memory_regions_hw_probe()
364 err = PTR_ERR(mem); in intel_memory_regions_hw_probe()
371 if (mem) { /* Skip on non-fatal errors */ in intel_memory_regions_hw_probe()
372 mem->id = i; in intel_memory_regions_hw_probe()
373 i915->mm.regions[i] = mem; in intel_memory_regions_hw_probe()
378 struct intel_memory_region *mem = i915->mm.regions[i]; in intel_memory_regions_hw_probe() local
381 if (!mem) in intel_memory_regions_hw_probe()
384 region_size = resource_size(&mem->region) >> 20; in intel_memory_regions_hw_probe()
385 io_size = resource_size(&mem->io) >> 20; in intel_memory_regions_hw_probe()
387 if (resource_size(&mem->io)) in intel_memory_regions_hw_probe()
389 mem->id, mem->name, region_size, &mem->region, io_size, &mem->io); in intel_memory_regions_hw_probe()
392 mem->id, mem->name, region_size, &mem->region); in intel_memory_regions_hw_probe()