Lines Matching refs:mem
36 nouveau_mem_map(struct nouveau_mem *mem,
54 args.nv50.kind = mem->kind;
55 args.nv50.comp = mem->comp;
62 if (mem->mem.type & NVIF_MEM_VRAM)
68 args.gf100.kind = mem->kind;
78 ret = nvif_vmm_map(vmm, vma->addr, mem->mem.size, &args, argc,
79 &mem->mem, 0);
85 nouveau_mem_fini(struct nouveau_mem *mem)
87 nvif_vmm_put(&mem->cli->drm->client.vmm.vmm, &mem->vma[1]);
88 nvif_vmm_put(&mem->cli->drm->client.vmm.vmm, &mem->vma[0]);
89 mutex_lock(&mem->cli->drm->master.lock);
90 nvif_mem_dtor(&mem->mem);
91 mutex_unlock(&mem->cli->drm->master.lock);
97 struct nouveau_mem *mem = nouveau_mem(reg);
98 struct nouveau_cli *cli = mem->cli;
107 type = drm->ttm.type_ncoh[!!mem->kind];
111 if (mem->kind && !(mmu->type[type].type & NVIF_MEM_KIND))
112 mem->comp = mem->kind = 0;
113 if (mem->comp && !(mmu->type[type].type & NVIF_MEM_COMP)) {
115 mem->kind = mmu->kind[mem->kind];
116 mem->comp = 0;
124 ret = nvif_mem_ctor_type(mmu, "ttmHostMem", cli->mem->oclass, type, PAGE_SHIFT,
126 &args, sizeof(args), &mem->mem);
135 struct nouveau_mem *mem = nouveau_mem(reg);
136 struct nouveau_cli *cli = mem->cli;
145 switch (cli->mem->oclass) {
147 ret = nvif_mem_ctor_type(mmu, "ttmVram", cli->mem->oclass,
152 &mem->mem);
155 ret = nvif_mem_ctor_type(mmu, "ttmVram", cli->mem->oclass,
158 .bankswz = mmu->kind[mem->kind] == 2,
161 &mem->mem);
171 reg->start = mem->mem.addr >> PAGE_SHIFT;
178 struct nouveau_mem *mem = nouveau_mem(reg);
179 if (!mem)
181 nouveau_mem_fini(mem);
190 struct nouveau_mem *mem;
192 if (!(mem = kzalloc(sizeof(*mem), GFP_KERNEL)))
194 mem->cli = cli;
195 mem->kind = kind;
196 mem->comp = comp;
198 reg->mm_node = mem;