Lines Matching defs:mem

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