Lines Matching full:vmm

22 #include "vmm.h"
30 r535_mmu_promote_vmm(struct nvkm_vmm *vmm) in r535_mmu_promote_vmm() argument
35 ret = nvkm_gsp_client_device_ctor(vmm->mmu->subdev.device->gsp, in r535_mmu_promote_vmm()
36 &vmm->rm.client, &vmm->rm.device); in r535_mmu_promote_vmm()
40 args = nvkm_gsp_rm_alloc_get(&vmm->rm.device.object, 0x90f10000, FERMI_VASPACE_A, in r535_mmu_promote_vmm()
41 sizeof(*args), &vmm->rm.object); in r535_mmu_promote_vmm()
47 ret = nvkm_gsp_rm_alloc_wr(&vmm->rm.object, args); in r535_mmu_promote_vmm()
54 mutex_lock(&vmm->mutex.vmm); in r535_mmu_promote_vmm()
55 ret = nvkm_vmm_get_locked(vmm, true, false, false, 0x1d, 32, 0x20000000, in r535_mmu_promote_vmm()
56 &vmm->rm.rsvd); in r535_mmu_promote_vmm()
57 mutex_unlock(&vmm->mutex.vmm); in r535_mmu_promote_vmm()
61 ctrl = nvkm_gsp_rm_ctrl_get(&vmm->rm.object, in r535_mmu_promote_vmm()
68 ctrl->virtAddrLo = vmm->rm.rsvd->addr; in r535_mmu_promote_vmm()
69 ctrl->virtAddrHi = vmm->rm.rsvd->addr + vmm->rm.rsvd->size - 1; in r535_mmu_promote_vmm()
70 ctrl->numLevelsToCopy = vmm->pd->pde[0]->pde[0] ? 3 : 2; in r535_mmu_promote_vmm()
71 ctrl->levels[0].physAddress = vmm->pd->pt[0]->addr; in r535_mmu_promote_vmm()
75 ctrl->levels[1].physAddress = vmm->pd->pde[0]->pt[0]->addr; in r535_mmu_promote_vmm()
79 if (vmm->pd->pde[0]->pde[0]) { in r535_mmu_promote_vmm()
80 ctrl->levels[2].physAddress = vmm->pd->pde[0]->pde[0]->pt[0]->addr; in r535_mmu_promote_vmm()
86 ret = nvkm_gsp_rm_ctrl_wr(&vmm->rm.object, ctrl); in r535_mmu_promote_vmm()
113 rm->vmm = hw->vmm; in r535_mmu_new()