Lines Matching defs:vmm

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