drm/nouveau: allocate vmm object for every client

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
Ben Skeggs
2017-11-01 03:56:20 +10:00
父節點 acb16cfa95
當前提交 96da0bcd51
共有 6 個文件被更改,包括 44 次插入36 次删除

查看文件

@@ -114,13 +114,19 @@ done:
void
nouveau_vmm_fini(struct nouveau_vmm *vmm)
{
nvkm_vm_ref(NULL, &vmm->vm, NULL);
nvif_vmm_fini(&vmm->vmm);
vmm->cli = NULL;
}
int
nouveau_vmm_init(struct nouveau_cli *cli, s32 oclass, struct nouveau_vmm *vmm)
{
int ret = nvif_vmm_init(&cli->mmu, oclass, PAGE_SIZE, 0, NULL, 0,
&vmm->vmm);
if (ret)
return ret;
vmm->cli = cli;
return nvkm_vm_new(nvxx_device(&cli->device), 0, (1ULL << 40),
0x1000, NULL, &vmm->vm);
vmm->vm = nvkm_uvmm(vmm->vmm.object.priv)->vmm;
return 0;
}