Lines Matching refs:vmm
34 gp100_vmm_pfn_unmap(struct nvkm_vmm *vmm, in gp100_vmm_pfn_unmap() argument
37 struct device *dev = vmm->mmu->subdev.device->dev; in gp100_vmm_pfn_unmap()
55 gp100_vmm_pfn_clear(struct nvkm_vmm *vmm, in gp100_vmm_pfn_clear() argument
65 VMM_WO064(pt, vmm, ptei * 8, data & ~BIT_ULL(0)); in gp100_vmm_pfn_clear()
75 gp100_vmm_pgt_pfn(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in gp100_vmm_pgt_pfn() argument
78 struct device *dev = vmm->mmu->subdev.device->dev; in gp100_vmm_pgt_pfn()
109 VMM_WO064(pt, vmm, ptei++ * 8, data); in gp100_vmm_pgt_pfn()
115 gp100_vmm_pgt_pte(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in gp100_vmm_pgt_pte() argument
123 VMM_WO064(pt, vmm, ptei++ * 8, data); in gp100_vmm_pgt_pte()
129 gp100_vmm_pgt_sgl(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in gp100_vmm_pgt_sgl() argument
132 VMM_MAP_ITER_SGL(vmm, pt, ptei, ptes, map, gp100_vmm_pgt_pte); in gp100_vmm_pgt_sgl()
136 gp100_vmm_pgt_dma(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in gp100_vmm_pgt_dma() argument
140 VMM_SPAM(vmm, "DMAA %08x %08x PTE(s)", ptei, ptes); in gp100_vmm_pgt_dma()
144 VMM_WO064(pt, vmm, ptei++ * 8, data); in gp100_vmm_pgt_dma()
151 VMM_MAP_ITER_DMA(vmm, pt, ptei, ptes, map, gp100_vmm_pgt_pte); in gp100_vmm_pgt_dma()
155 gp100_vmm_pgt_mem(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in gp100_vmm_pgt_mem() argument
158 VMM_MAP_ITER_MEM(vmm, pt, ptei, ptes, map, gp100_vmm_pgt_pte); in gp100_vmm_pgt_mem()
162 gp100_vmm_pgt_sparse(struct nvkm_vmm *vmm, in gp100_vmm_pgt_sparse() argument
166 VMM_FO064(pt, vmm, ptei * 8, BIT_ULL(3) /* VOL. */, ptes); in gp100_vmm_pgt_sparse()
182 gp100_vmm_lpt_invalid(struct nvkm_vmm *vmm, in gp100_vmm_lpt_invalid() argument
186 VMM_FO064(pt, vmm, ptei * 8, BIT_ULL(5) /* PRIV. */, ptes); in gp100_vmm_lpt_invalid()
198 gp100_vmm_pd0_pte(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in gp100_vmm_pd0_pte() argument
206 VMM_WO128(pt, vmm, ptei++ * 0x10, data, 0ULL); in gp100_vmm_pd0_pte()
212 gp100_vmm_pd0_mem(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in gp100_vmm_pd0_mem() argument
215 VMM_MAP_ITER_MEM(vmm, pt, ptei, ptes, map, gp100_vmm_pd0_pte); in gp100_vmm_pd0_mem()
236 gp100_vmm_pd0_pde(struct nvkm_vmm *vmm, struct nvkm_vmm_pt *pgd, u32 pdei) in gp100_vmm_pd0_pde() argument
248 VMM_WO128(pd, vmm, pdei * 0x10, data[0], data[1]); in gp100_vmm_pd0_pde()
253 gp100_vmm_pd0_sparse(struct nvkm_vmm *vmm, in gp100_vmm_pd0_sparse() argument
257 VMM_FO128(pt, vmm, pdei * 0x10, BIT_ULL(3) /* VOL_BIG. */, 0ULL, pdes); in gp100_vmm_pd0_sparse()
261 gp100_vmm_pd0_unmap(struct nvkm_vmm *vmm, in gp100_vmm_pd0_unmap() argument
264 VMM_FO128(pt, vmm, pdei * 0x10, 0ULL, 0ULL, pdes); in gp100_vmm_pd0_unmap()
268 gp100_vmm_pd0_pfn_unmap(struct nvkm_vmm *vmm, in gp100_vmm_pd0_pfn_unmap() argument
271 struct device *dev = vmm->mmu->subdev.device->dev; in gp100_vmm_pd0_pfn_unmap()
290 gp100_vmm_pd0_pfn_clear(struct nvkm_vmm *vmm, in gp100_vmm_pd0_pfn_clear() argument
302 VMM_WO064(pt, vmm, ptei * 16, data & ~BIT_ULL(0)); in gp100_vmm_pd0_pfn_clear()
312 gp100_vmm_pd0_pfn(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in gp100_vmm_pd0_pfn() argument
315 struct device *dev = vmm->mmu->subdev.device->dev; in gp100_vmm_pd0_pfn()
346 VMM_WO064(pt, vmm, ptei++ * 16, data); in gp100_vmm_pd0_pfn()
363 gp100_vmm_pd1_pde(struct nvkm_vmm *vmm, struct nvkm_vmm_pt *pgd, u32 pdei) in gp100_vmm_pd1_pde() argument
373 VMM_WO064(pd, vmm, pdei * 8, data); in gp100_vmm_pd1_pde()
405 gp100_vmm_valid(struct nvkm_vmm *vmm, void *argv, u32 argc, in gp100_vmm_valid() argument
414 struct nvkm_device *device = vmm->mmu->subdev.device; in gp100_vmm_valid()
435 VMM_DEBUG(vmm, "args"); in gp100_vmm_valid()
439 aper = vmm->func->aper(target); in gp100_vmm_valid()
443 kindm = vmm->mmu->func->kind(vmm->mmu, &kindn, &kind_inv); in gp100_vmm_valid()
445 VMM_DEBUG(vmm, "kind %02x", kind); in gp100_vmm_valid()
452 VMM_DEBUG(vmm, "comp %d %02x", aper, page->type); in gp100_vmm_valid()
460 VMM_DEBUG(vmm, "comp %d", ret); in gp100_vmm_valid()
484 gp100_vmm_fault_cancel(struct nvkm_vmm *vmm, void *argv, u32 argc) in gp100_vmm_fault_cancel() argument
486 struct nvkm_device *device = vmm->mmu->subdev.device; in gp100_vmm_fault_cancel()
506 gf100_vmm_invalidate(vmm, 0x0000001b in gp100_vmm_fault_cancel()
519 gp100_vmm_fault_replay(struct nvkm_vmm *vmm, void *argv, u32 argc) in gp100_vmm_fault_replay() argument
527 gf100_vmm_invalidate(vmm, 0x0000000b); /* REPLAY_GLOBAL. */ in gp100_vmm_fault_replay()
534 gp100_vmm_mthd(struct nvkm_vmm *vmm, in gp100_vmm_mthd() argument
539 return gp100_vmm_fault_replay(vmm, argv, argc); in gp100_vmm_mthd()
541 return gp100_vmm_fault_cancel(vmm, argv, argc); in gp100_vmm_mthd()
549 gp100_vmm_invalidate_pdb(struct nvkm_vmm *vmm, u64 addr) in gp100_vmm_invalidate_pdb() argument
551 struct nvkm_device *device = vmm->mmu->subdev.device; in gp100_vmm_invalidate_pdb()
557 gp100_vmm_flush(struct nvkm_vmm *vmm, int depth) in gp100_vmm_flush() argument
560 if (atomic_read(&vmm->engref[NVKM_SUBDEV_BAR])) in gp100_vmm_flush()
563 gf100_vmm_invalidate(vmm, type); in gp100_vmm_flush()
567 gp100_vmm_join(struct nvkm_vmm *vmm, struct nvkm_memory *inst) in gp100_vmm_join() argument
570 if (vmm->replay) { in gp100_vmm_join()
574 return gf100_vmm_join_(vmm, inst, base); in gp100_vmm_join()