Lines Matching refs:mem
37 nouveau_mem_map(struct nouveau_mem *mem,
53 args.nv50.kind = mem->kind;
54 args.nv50.comp = mem->comp;
61 if (mem->mem.type & NVIF_MEM_VRAM)
67 args.gf100.kind = mem->kind;
75 return nvif_vmm_map(vmm, vma->addr, mem->mem.size, &args, argc, &mem->mem, 0);
79 nouveau_mem_fini(struct nouveau_mem *mem)
81 nvif_vmm_put(&mem->cli->drm->client.vmm.vmm, &mem->vma[1]);
82 nvif_vmm_put(&mem->cli->drm->client.vmm.vmm, &mem->vma[0]);
83 mutex_lock(&mem->cli->drm->master.lock);
84 nvif_mem_dtor(&mem->mem);
85 mutex_unlock(&mem->cli->drm->master.lock);
91 struct nouveau_mem *mem = nouveau_mem(reg);
92 struct nouveau_cli *cli = mem->cli;
100 type = drm->ttm.type_ncoh[!!mem->kind];
104 if (mem->kind && !(mmu->type[type].type & NVIF_MEM_KIND))
105 mem->comp = mem->kind = 0;
106 if (mem->comp && !(mmu->type[type].type & NVIF_MEM_COMP)) {
108 mem->kind = mmu->kind[mem->kind];
109 mem->comp = 0;
118 ret = nvif_mem_ctor_type(mmu, "ttmHostMem", cli->mem->oclass, type, PAGE_SHIFT,
120 &args, sizeof(args), &mem->mem);
128 struct nouveau_mem *mem = nouveau_mem(reg);
129 struct nouveau_cli *cli = mem->cli;
136 switch (cli->mem->oclass) {
138 ret = nvif_mem_ctor_type(mmu, "ttmVram", cli->mem->oclass,
143 &mem->mem);
146 ret = nvif_mem_ctor_type(mmu, "ttmVram", cli->mem->oclass,
149 .bankswz = mmu->kind[mem->kind] == 2,
152 &mem->mem);
161 reg->start = mem->mem.addr >> PAGE_SHIFT;
168 struct nouveau_mem *mem = nouveau_mem(reg);
170 nouveau_mem_fini(mem);
172 kfree(mem);
179 struct nouveau_mem *mem;
181 if (!(mem = kzalloc(sizeof(*mem), GFP_KERNEL)))
184 mem->cli = cli;
185 mem->kind = kind;
186 mem->comp = comp;
188 *res = &mem->base;