Home
last modified time | relevance | path

Searched refs:vmm (Results 1 – 25 of 78) sorted by relevance

1234

/linux/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/
H A Dvmm.c23 #include "vmm.h"
76 struct nvkm_vmm *vmm;
114 VMM_TRACE(_it->vmm, "%s "f, _buf, ##a); \
130 if (it->vmm->func->flush) { in nvkm_vmm_flush()
132 it->vmm->func->flush(it->vmm, it->flush); in nvkm_vmm_flush()
146 struct nvkm_vmm *vmm = it->vmm; in nvkm_vmm_unref_pdes()
160 func->sparse(vmm, pgd->pt[0], pdei, 1); in nvkm_vmm_unref_pdes()
163 func->unmap(vmm, pg in nvkm_vmm_unref_pdes()
75 struct nvkm_vmm *vmm; global() member
145 struct nvkm_vmm *vmm = it->vmm; nvkm_vmm_unref_pdes() local
203 struct nvkm_vmm *vmm = it->vmm; nvkm_vmm_unref_sptes() local
314 struct nvkm_vmm *vmm = it->vmm; nvkm_vmm_ref_sptes() local
443 struct nvkm_vmm *vmm = it->vmm; nvkm_vmm_ref_hwpt() local
525 nvkm_vmm_iter(struct nvkm_vmm * vmm,const struct nvkm_vmm_page * page,u64 addr,u64 size,const char * name,bool ref,bool pfn,bool (* REF_PTES)(struct nvkm_vmm_iter *,bool pfn,u32,u32),nvkm_vmm_pte_func MAP_PTES,struct nvkm_vmm_map * map,nvkm_vmm_pxe_func CLR_PTES) nvkm_vmm_iter() argument
626 nvkm_vmm_ptes_sparse_put(struct nvkm_vmm * vmm,const struct nvkm_vmm_page * page,u64 addr,u64 size) nvkm_vmm_ptes_sparse_put() argument
636 nvkm_vmm_ptes_sparse_get(struct nvkm_vmm * vmm,const struct nvkm_vmm_page * page,u64 addr,u64 size) nvkm_vmm_ptes_sparse_get() argument
654 nvkm_vmm_ptes_sparse(struct nvkm_vmm * vmm,u64 addr,u64 size,bool ref) nvkm_vmm_ptes_sparse() argument
704 nvkm_vmm_ptes_unmap(struct nvkm_vmm * vmm,const struct nvkm_vmm_page * page,u64 addr,u64 size,bool sparse,bool pfn) nvkm_vmm_ptes_unmap() argument
718 nvkm_vmm_ptes_map(struct nvkm_vmm * vmm,const struct nvkm_vmm_page * page,u64 addr,u64 size,struct nvkm_vmm_map * map,nvkm_vmm_pte_func func) nvkm_vmm_ptes_map() argument
729 nvkm_vmm_ptes_put_locked(struct nvkm_vmm * vmm,const struct nvkm_vmm_page * page,u64 addr,u64 size) nvkm_vmm_ptes_put_locked() argument
737 nvkm_vmm_ptes_put(struct nvkm_vmm * vmm,const struct nvkm_vmm_page * page,u64 addr,u64 size) nvkm_vmm_ptes_put() argument
746 nvkm_vmm_ptes_get(struct nvkm_vmm * vmm,const struct nvkm_vmm_page * page,u64 addr,u64 size) nvkm_vmm_ptes_get() argument
765 __nvkm_vmm_ptes_unmap_put(struct nvkm_vmm * vmm,const struct nvkm_vmm_page * page,u64 addr,u64 size,bool sparse,bool pfn) __nvkm_vmm_ptes_unmap_put() argument
777 nvkm_vmm_ptes_unmap_put(struct nvkm_vmm * vmm,const struct nvkm_vmm_page * page,u64 addr,u64 size,bool sparse,bool pfn) nvkm_vmm_ptes_unmap_put() argument
789 __nvkm_vmm_ptes_get_map(struct nvkm_vmm * vmm,const struct nvkm_vmm_page * page,u64 addr,u64 size,struct nvkm_vmm_map * map,nvkm_vmm_pte_func func) __nvkm_vmm_ptes_get_map() argument
804 nvkm_vmm_ptes_get_map(struct nvkm_vmm * vmm,const struct nvkm_vmm_page * page,u64 addr,u64 size,struct nvkm_vmm_map * map,nvkm_vmm_pte_func func) nvkm_vmm_ptes_get_map() argument
860 nvkm_vmm_free_remove(struct nvkm_vmm * vmm,struct nvkm_vma * vma) nvkm_vmm_free_remove() argument
866 nvkm_vmm_free_delete(struct nvkm_vmm * vmm,struct nvkm_vma * vma) nvkm_vmm_free_delete() argument
874 nvkm_vmm_free_insert(struct nvkm_vmm * vmm,struct nvkm_vma * vma) nvkm_vmm_free_insert() argument
902 nvkm_vmm_node_remove(struct nvkm_vmm * vmm,struct nvkm_vma * vma) nvkm_vmm_node_remove() argument
908 nvkm_vmm_node_delete(struct nvkm_vmm * vmm,struct nvkm_vma * vma) nvkm_vmm_node_delete() argument
916 nvkm_vmm_node_insert(struct nvkm_vmm * vmm,struct nvkm_vma * vma) nvkm_vmm_node_insert() argument
938 nvkm_vmm_node_search(struct nvkm_vmm * vmm,u64 addr) nvkm_vmm_node_search() argument
958 nvkm_vmm_node_merge(struct nvkm_vmm * vmm,struct nvkm_vma * prev,struct nvkm_vma * vma,struct nvkm_vma * next,u64 size) nvkm_vmm_node_merge() argument
1000 nvkm_vmm_node_split(struct nvkm_vmm * vmm,struct nvkm_vma * vma,u64 addr,u64 size) nvkm_vmm_node_split() argument
1043 nvkm_vmm_dump(struct nvkm_vmm * vmm) nvkm_vmm_dump() argument
1052 nvkm_vmm_dtor(struct nvkm_vmm * vmm) nvkm_vmm_dtor() argument
1096 nvkm_vmm_ctor_managed(struct nvkm_vmm * vmm,u64 addr,u64 size) nvkm_vmm_ctor_managed() argument
1113 nvkm_vmm_ctor(const struct nvkm_vmm_func * func,struct nvkm_mmu * mmu,u32 pd_header,bool managed,u64 addr,u64 size,struct lock_class_key * key,const char * name,struct nvkm_vmm * vmm) nvkm_vmm_ctor() argument
1235 nvkm_vmm_pfn_split_merge(struct nvkm_vmm * vmm,struct nvkm_vma * vma,u64 addr,u64 size,u8 page,bool map) nvkm_vmm_pfn_split_merge() argument
1258 nvkm_vmm_pfn_unmap(struct nvkm_vmm * vmm,u64 addr,u64 size) nvkm_vmm_pfn_unmap() argument
1294 nvkm_vmm_pfn_map(struct nvkm_vmm * vmm,u8 shift,u64 addr,u64 size,u64 * pfn) nvkm_vmm_pfn_map() argument
1417 nvkm_vmm_unmap_region(struct nvkm_vmm * vmm,struct nvkm_vma * vma) nvkm_vmm_unmap_region() argument
1434 nvkm_vmm_unmap_locked(struct nvkm_vmm * vmm,struct nvkm_vma * vma,bool pfn) nvkm_vmm_unmap_locked() argument
1449 nvkm_vmm_unmap(struct nvkm_vmm * vmm,struct nvkm_vma * vma) nvkm_vmm_unmap() argument
1459 nvkm_vmm_map_valid(struct nvkm_vmm * vmm,struct nvkm_vma * vma,void * argv,u32 argc,struct nvkm_vmm_map * map) nvkm_vmm_map_valid() argument
1495 nvkm_vmm_map_choose(struct nvkm_vmm * vmm,struct nvkm_vma * vma,void * argv,u32 argc,struct nvkm_vmm_map * map) nvkm_vmm_map_choose() argument
1507 nvkm_vmm_map_locked(struct nvkm_vmm * vmm,struct nvkm_vma * vma,void * argv,u32 argc,struct nvkm_vmm_map * map) nvkm_vmm_map_locked() argument
1595 nvkm_vmm_map(struct nvkm_vmm * vmm,struct nvkm_vma * vma,void * argv,u32 argc,struct nvkm_vmm_map * map) nvkm_vmm_map() argument
1612 nvkm_vmm_put_region(struct nvkm_vmm * vmm,struct nvkm_vma * vma) nvkm_vmm_put_region() argument
1631 nvkm_vmm_put_locked(struct nvkm_vmm * vmm,struct nvkm_vma * vma) nvkm_vmm_put_locked() argument
1713 nvkm_vmm_put(struct nvkm_vmm * vmm,struct nvkm_vma ** pvma) nvkm_vmm_put() argument
1725 nvkm_vmm_get_locked(struct nvkm_vmm * vmm,bool getref,bool mapref,bool sparse,u8 shift,u8 align,u64 size,struct nvkm_vma ** pvma) nvkm_vmm_get_locked() argument
1863 nvkm_vmm_get(struct nvkm_vmm * vmm,u8 page,u64 size,struct nvkm_vma ** pvma) nvkm_vmm_get() argument
1873 nvkm_vmm_raw_unmap(struct nvkm_vmm * vmm,u64 addr,u64 size,bool sparse,u8 refd) nvkm_vmm_raw_unmap() argument
1882 nvkm_vmm_raw_put(struct nvkm_vmm * vmm,u64 addr,u64 size,u8 refd) nvkm_vmm_raw_put() argument
1890 nvkm_vmm_raw_get(struct nvkm_vmm * vmm,u64 addr,u64 size,u8 refd) nvkm_vmm_raw_get() argument
1901 nvkm_vmm_raw_sparse(struct nvkm_vmm * vmm,u64 addr,u64 size,bool ref) nvkm_vmm_raw_sparse() argument
1913 nvkm_vmm_part(struct nvkm_vmm * vmm,struct nvkm_memory * inst) nvkm_vmm_part() argument
1923 nvkm_vmm_join(struct nvkm_vmm * vmm,struct nvkm_memory * inst) nvkm_vmm_join() argument
1944 nvkm_vmm_boot(struct nvkm_vmm * vmm) nvkm_vmm_boot() argument
1966 struct nvkm_vmm *vmm = container_of(kref, typeof(*vmm), kref); nvkm_vmm_del() local
1974 struct nvkm_vmm *vmm = *pvmm; nvkm_vmm_unref() local
1982 nvkm_vmm_ref(struct nvkm_vmm * vmm) nvkm_vmm_ref() argument
1995 struct nvkm_vmm *vmm = NULL; nvkm_vmm_new() local
[all...]
H A Duvmm.c42 return nvkm_vmm_ref(nvkm_uvmm(object)->vmm); in nvkm_uvmm_search()
51 struct nvkm_vmm *vmm = uvmm->vmm; in nvkm_uvmm_mthd_pfnclr() local
61 if (nvkm_vmm_in_managed_range(vmm, addr, size) && vmm->managed.raw) in nvkm_uvmm_mthd_pfnclr()
65 mutex_lock(&vmm->mutex.vmm); in nvkm_uvmm_mthd_pfnclr()
66 ret = nvkm_vmm_pfn_unmap(vmm, addr, size); in nvkm_uvmm_mthd_pfnclr()
67 mutex_unlock(&vmm->mutex.vmm); in nvkm_uvmm_mthd_pfnclr()
79 struct nvkm_vmm *vmm = uvmm->vmm; in nvkm_uvmm_mthd_pfnmap() local
94 if (nvkm_vmm_in_managed_range(vmm, addr, size) && vmm->managed.raw) in nvkm_uvmm_mthd_pfnmap()
98 mutex_lock(&vmm->mutex.vmm); in nvkm_uvmm_mthd_pfnmap()
99 ret = nvkm_vmm_pfn_map(vmm, page, addr, size, phys); in nvkm_uvmm_mthd_pfnmap()
[all …]
H A Dvmmnv44.c27 nv44_vmm_pgt_fill(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in nv44_vmm_pgt_fill() argument
39 u32 addr = (list ? *list++ : vmm->null) >> 12; in nv44_vmm_pgt_fill()
66 VMM_WO032(pt, vmm, pteo + 0x0, tmp[0]); in nv44_vmm_pgt_fill()
67 VMM_WO032(pt, vmm, pteo + 0x4, tmp[1]); in nv44_vmm_pgt_fill()
68 VMM_WO032(pt, vmm, pteo + 0x8, tmp[2]); in nv44_vmm_pgt_fill()
69 VMM_WO032(pt, vmm, pteo + 0xc, tmp[3] | 0x40000000); in nv44_vmm_pgt_fill()
73 nv44_vmm_pgt_pte(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in nv44_vmm_pgt_pte() argument
82 nv44_vmm_pgt_fill(vmm, pt, tmp, ptei, pten); in nv44_vmm_pgt_pte()
90 VMM_WO032(pt, vmm, ptei++ * 4, tmp[0] >> 0 | tmp[1] << 27); in nv44_vmm_pgt_pte()
91 VMM_WO032(pt, vmm, ptei++ * 4, tmp[1] >> 5 | tmp[2] << 22); in nv44_vmm_pgt_pte()
[all …]
H A Dvmmnv50.c32 nv50_vmm_pgt_pte(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in nv50_vmm_pgt_pte() argument
53 VMM_WO064(pt, vmm, ptei++ * 8, data); in nv50_vmm_pgt_pte()
58 nv50_vmm_pgt_sgl(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in nv50_vmm_pgt_sgl() argument
61 VMM_MAP_ITER_SGL(vmm, pt, ptei, ptes, map, nv50_vmm_pgt_pte); in nv50_vmm_pgt_sgl()
65 nv50_vmm_pgt_dma(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in nv50_vmm_pgt_dma() argument
69 VMM_SPAM(vmm, "DMAA %08x %08x PTE(s)", ptei, ptes); in nv50_vmm_pgt_dma()
73 VMM_WO064(pt, vmm, ptei++ * 8, data); in nv50_vmm_pgt_dma()
80 VMM_MAP_ITER_DMA(vmm, pt, ptei, ptes, map, nv50_vmm_pgt_pte); in nv50_vmm_pgt_dma()
84 nv50_vmm_pgt_mem(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in nv50_vmm_pgt_mem() argument
87 VMM_MAP_ITER_MEM(vmm, pt, ptei, ptes, map, nv50_vmm_pgt_pte); in nv50_vmm_pgt_mem()
[all …]
H A Dvmmgf100.c32 gf100_vmm_pgt_pte(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in gf100_vmm_pgt_pte() argument
44 VMM_WO064(pt, vmm, ptei++ * 8, data); in gf100_vmm_pgt_pte()
51 VMM_WO064(pt, vmm, ptei++ * 8, data); in gf100_vmm_pgt_pte()
58 gf100_vmm_pgt_sgl(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in gf100_vmm_pgt_sgl() argument
61 VMM_MAP_ITER_SGL(vmm, pt, ptei, ptes, map, gf100_vmm_pgt_pte); in gf100_vmm_pgt_sgl()
65 gf100_vmm_pgt_dma(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in gf100_vmm_pgt_dma() argument
69 VMM_SPAM(vmm, "DMAA %08x %08x PTE(s)", ptei, ptes); in gf100_vmm_pgt_dma()
73 VMM_WO064(pt, vmm, ptei++ * 8, data); in gf100_vmm_pgt_dma()
80 VMM_MAP_ITER_DMA(vmm, pt, ptei, ptes, map, gf100_vmm_pgt_pte); in gf100_vmm_pgt_dma()
84 gf100_vmm_pgt_mem(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in gf100_vmm_pgt_mem() argument
[all …]
H A Dvmmnv04.c28 nv04_vmm_pgt_pte(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in nv04_vmm_pgt_pte() argument
33 VMM_WO032(pt, vmm, 8 + ptei++ * 4, data); in nv04_vmm_pgt_pte()
39 nv04_vmm_pgt_sgl(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in nv04_vmm_pgt_sgl() argument
42 VMM_MAP_ITER_SGL(vmm, pt, ptei, ptes, map, nv04_vmm_pgt_pte); in nv04_vmm_pgt_sgl()
46 nv04_vmm_pgt_dma(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in nv04_vmm_pgt_dma() argument
52 VMM_WO032(pt, vmm, 8 + (ptei++ * 4), *map->dma++ | 0x00000003); in nv04_vmm_pgt_dma()
55 VMM_MAP_ITER_DMA(vmm, pt, ptei, ptes, map, nv04_vmm_pgt_pte); in nv04_vmm_pgt_dma()
60 nv04_vmm_pgt_unmap(struct nvkm_vmm *vmm, in nv04_vmm_pgt_unmap() argument
63 VMM_FO032(pt, vmm, 8 + (ptei * 4), 0, ptes); in nv04_vmm_pgt_unmap()
80 nv04_vmm_valid(struct nvkm_vmm *vmm, void *argv, u32 argc, in nv04_vmm_valid() argument
[all …]
H A Dvmmnv41.c27 nv41_vmm_pgt_pte(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in nv41_vmm_pgt_pte() argument
32 VMM_WO032(pt, vmm, ptei++ * 4, data); in nv41_vmm_pgt_pte()
38 nv41_vmm_pgt_sgl(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in nv41_vmm_pgt_sgl() argument
41 VMM_MAP_ITER_SGL(vmm, pt, ptei, ptes, map, nv41_vmm_pgt_pte); in nv41_vmm_pgt_sgl()
45 nv41_vmm_pgt_dma(struct nvkm_vmm *vmm, struct nvkm_mmu_pt *pt, in nv41_vmm_pgt_dma() argument
52 VMM_WO032(pt, vmm, ptei++ * 4, data); in nv41_vmm_pgt_dma()
56 VMM_MAP_ITER_DMA(vmm, pt, ptei, ptes, map, nv41_vmm_pgt_pte); in nv41_vmm_pgt_dma()
61 nv41_vmm_pgt_unmap(struct nvkm_vmm *vmm, in nv41_vmm_pgt_unmap() argument
64 VMM_FO032(pt, vmm, ptei * 4, 0, ptes); in nv41_vmm_pgt_unmap()
81 nv41_vmm_flush(struct nvkm_vmm *vmm, int level) in nv41_vmm_flush() argument
[all …]
H A Dvmmgm200.c28 gm200_vmm_pgt_sparse(struct nvkm_vmm *vmm, in gm200_vmm_pgt_sparse() argument
32 VMM_FO064(pt, vmm, ptei * 8, BIT_ULL(32) /* VOL. */, ptes); in gm200_vmm_pgt_sparse()
53 gm200_vmm_pgd_sparse(struct nvkm_vmm *vmm, in gm200_vmm_pgd_sparse() argument
57 VMM_FO064(pt, vmm, pdei * 8, BIT_ULL(35) /* VOL_BIG. */, pdes); in gm200_vmm_pgd_sparse()
96 gm200_vmm_join_(struct nvkm_vmm *vmm, struct nvkm_memory *inst, u64 base) in gm200_vmm_join_() argument
98 if (vmm->func->page[1].shift == 16) in gm200_vmm_join_()
100 return gf100_vmm_join_(vmm, inst, base); in gm200_vmm_join_()
104 gm200_vmm_join(struct nvkm_vmm *vmm, struct nvkm_memory *inst) in gm200_vmm_join() argument
106 return gm200_vmm_join_(vmm, inst, 0); in gm200_vmm_join()
/linux/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/
H A Dvmm.c28 r535_mmu_vaspace_del(struct nvkm_vmm *vmm) in r535_mmu_vaspace_del() argument
30 if (vmm->rm.external) { in r535_mmu_vaspace_del()
33 ctrl = nvkm_gsp_rm_ctrl_get(&vmm->rm.device.object, in r535_mmu_vaspace_del()
37 ctrl->hVASpace = vmm->rm.object.handle; in r535_mmu_vaspace_del()
39 WARN_ON(nvkm_gsp_rm_ctrl_wr(&vmm->rm.device.object, ctrl)); in r535_mmu_vaspace_del()
42 vmm->rm.external = false; in r535_mmu_vaspace_del()
45 nvkm_gsp_rm_free(&vmm->rm.object); in r535_mmu_vaspace_del()
46 nvkm_gsp_device_dtor(&vmm->rm.device); in r535_mmu_vaspace_del()
47 nvkm_gsp_client_dtor(&vmm->rm.client); in r535_mmu_vaspace_del()
49 nvkm_vmm_put(vmm, &vmm->rm.rsvd); in r535_mmu_vaspace_del()
[all …]
H A Dbar.c71 struct nvkm_vmm *vmm = gf100_bar(bar)->bar[0].vmm; in r535_bar_bar2_fini() local
77 WARN_ON(r535_bar_bar2_update_pde(gsp, vmm->func->page[0].shift, 0)); in r535_bar_bar2_fini()
84 struct nvkm_vmm *vmm = gf100_bar(bar)->bar[0].vmm; in r535_bar_bar2_init() local
86 struct nvkm_memory *pdb = vmm->pd->pt[0]->memory; in r535_bar_bar2_init()
87 u32 pdb_offset = vmm->pd->pt[0]->base; in r535_bar_bar2_init()
97 WARN_ON(r535_bar_bar2_update_pde(gsp, vmm->func->page[0].shift, pdbe)); in r535_bar_bar2_init()
98 vmm->rm.bar2_pdb = gsp->bar.rm_bar2_pdb; in r535_bar_bar2_init()
132 struct nvkm_vmm *vmm = gf100_bar(bar)->bar[1].vmm; in r535_bar_bar1_init() local
140 nvkm_memory_unref(&vmm->pd->pt[0]->memory); in r535_bar_bar1_init()
142 ret = nvkm_memory_kmap(pd3, &vmm->pd->pt[0]->memory); in r535_bar_bar1_init()
[all …]
/linux/drivers/gpu/drm/nouveau/nvif/
H A Dvmm.c28 nvif_vmm_unmap(struct nvif_vmm *vmm, u64 addr) in nvif_vmm_unmap() argument
30 return nvif_object_mthd(&vmm->object, NVIF_VMM_V0_UNMAP, in nvif_vmm_unmap()
36 nvif_vmm_map(struct nvif_vmm *vmm, u64 addr, u64 size, void *argv, u32 argc, in nvif_vmm_map() argument
57 ret = nvif_object_mthd(&vmm->object, NVIF_VMM_V0_MAP, in nvif_vmm_map()
65 nvif_vmm_put(struct nvif_vmm *vmm, struct nvif_vma *vma) in nvif_vmm_put() argument
68 WARN_ON(nvif_object_mthd(&vmm->object, NVIF_VMM_V0_PUT, in nvif_vmm_put()
77 nvif_vmm_get(struct nvif_vmm *vmm, enum nvif_vmm_get type, bool sparse, in nvif_vmm_get() argument
98 ret = nvif_object_mthd(&vmm->object, NVIF_VMM_V0_GET, in nvif_vmm_get()
108 nvif_vmm_raw_get(struct nvif_vmm *vmm, u64 addr, u64 size, in nvif_vmm_raw_get() argument
119 return nvif_object_mthd(&vmm->object, NVIF_VMM_V0_RAW, in nvif_vmm_raw_get()
[all …]
/linux/drivers/gpu/drm/nouveau/
H A Dnouveau_vmm.c32 nvif_vmm_unmap(&vma->vmm->vmm, vma->addr); in nouveau_vma_unmap()
41 int ret = nouveau_mem_map(mem, &vma->vmm->vmm, &tmp); in nouveau_vma_map()
49 nouveau_vma_find(struct nouveau_bo *nvbo, struct nouveau_vmm *vmm) in nouveau_vma_find() argument
54 if (vma->vmm == vmm) in nouveau_vma_find()
68 nvif_vmm_put(&vma->vmm->vmm, &tmp); in nouveau_vma_del()
77 nouveau_vma_new(struct nouveau_bo *nvbo, struct nouveau_vmm *vmm, in nouveau_vma_new() argument
85 if ((vma = *pvma = nouveau_vma_find(nvbo, vmm))) { in nouveau_vma_new()
92 vma->vmm = vmm; in nouveau_vma_new()
101 ret = nvif_vmm_get(&vmm->vmm, LAZY, false, mem->mem.page, 0, in nouveau_vma_new()
109 ret = nvif_vmm_get(&vmm->vmm, PTES, false, mem->mem.page, 0, in nouveau_vma_new()
[all …]
H A Dnouveau_svm.c105 NV_DEBUG((s)->vmm->cli->drm, "svm-%p: "f"\n", (s), ##a)
107 NV_WARN((s)->vmm->cli->drm, "svm-%p: "f"\n", (s), ##a)
210 mutex_lock(&svmm->vmm->cli->drm->svm->mutex); in nouveau_svmm_part()
211 ivmm = nouveau_ivmm_find(svmm->vmm->cli->drm->svm, inst); in nouveau_svmm_part()
216 mutex_unlock(&svmm->vmm->cli->drm->svm->mutex); in nouveau_svmm_part()
231 mutex_lock(&svmm->vmm->cli->drm->svm->mutex); in nouveau_svmm_join()
232 list_add(&ivmm->head, &svmm->vmm->cli->drm->svm->inst); in nouveau_svmm_join()
233 mutex_unlock(&svmm->vmm->cli->drm->svm->mutex); in nouveau_svmm_join()
243 nvif_object_mthd(&svmm->vmm->vmm.object, NVIF_VMM_V0_PFNCLR, in nouveau_svmm_invalidate()
266 if (unlikely(!svmm->vmm)) in nouveau_svmm_invalidate_range_start()
[all …]
H A Dnouveau_uvmm.c94 struct nvif_vmm *vmm = &uvmm->vmm.vmm; in nouveau_uvmm_vmm_sparse_ref() local
96 return nvif_vmm_raw_sparse(vmm, addr, range, true); in nouveau_uvmm_vmm_sparse_ref()
103 struct nvif_vmm *vmm = &uvmm->vmm.vmm; in nouveau_uvmm_vmm_sparse_unref() local
105 return nvif_vmm_raw_sparse(vmm, addr, range, false); in nouveau_uvmm_vmm_sparse_unref()
112 struct nvif_vmm *vmm = &uvmm->vmm.vmm; in nouveau_uvmm_vmm_get() local
114 return nvif_vmm_raw_get(vmm, addr, range, page_shift); in nouveau_uvmm_vmm_get()
121 struct nvif_vmm *vmm = &uvmm->vmm.vmm; in nouveau_uvmm_vmm_put() local
123 return nvif_vmm_raw_put(vmm, addr, range, page_shift); in nouveau_uvmm_vmm_put()
130 struct nvif_vmm *vmm = &uvmm->vmm.vmm; in nouveau_uvmm_vmm_unmap() local
132 return nvif_vmm_raw_unmap(vmm, addr, range, page_shift, sparse); in nouveau_uvmm_vmm_unmap()
[all …]
H A Dnouveau_chan.c97 nouveau_svmm_part(chan->vmm->svmm, chan->inst); in nouveau_channel_del()
157 chan->vmm = nouveau_cli_vmm(cli); in nouveau_channel_prep()
185 ret = nouveau_vma_new(chan->push.buffer, chan->vmm, in nouveau_channel_prep()
202 args.limit = chan->vmm->vmm.limit - 1; in nouveau_channel_prep()
232 args.limit = chan->vmm->vmm.limit - 1; in nouveau_channel_prep()
304 args->vmm = 0; in nouveau_channel_ctor()
309 args->vmm = nvif_handle(&chan->vmm->vmm.object); in nouveau_channel_ctor()
393 args.limit = chan->vmm->vmm.limit - 1; in nouveau_channel_init()
411 args.limit = chan->vmm->vmm.limit - 1; in nouveau_channel_init()
422 args.limit = chan->vmm->vmm.limit - 1; in nouveau_channel_init()
[all …]
H A Dnouveau_mem.c38 struct nvif_vmm *vmm, struct nvif_vma *vma) in nouveau_mem_map() argument
46 switch (vmm->object.oclass) { in nouveau_mem_map()
75 return nvif_vmm_map(vmm, vma->addr, mem->mem.size, &args, argc, &mem->mem, 0); in nouveau_mem_map()
81 nvif_vmm_put(&mem->drm->client.vmm.vmm, &mem->vma[1]); in nouveau_mem_fini()
82 nvif_vmm_put(&mem->drm->client.vmm.vmm, &mem->vma[0]); in nouveau_mem_fini()
H A Dnouveau_gem.c104 struct nouveau_vmm *vmm = nouveau_cli_vmm(cli); in nouveau_gem_object_open() local
108 if (vmm->vmm.object.oclass < NVIF_CLASS_VMM_NV50) in nouveau_gem_object_open()
127 ret = nouveau_vma_new(nvbo, vmm, &vma); in nouveau_gem_object_open()
179 nouveau_cli_work_queue(vma->vmm->cli, fence, &work->work); in nouveau_gem_object_unmap()
189 struct nouveau_vmm *vmm = nouveau_cli_vmm(cli); in nouveau_gem_object_close() local
193 if (vmm->vmm.object.oclass < NVIF_CLASS_VMM_NV50) in nouveau_gem_object_close()
203 vma = nouveau_vma_find(nvbo, vmm); in nouveau_gem_object_close()
304 struct nouveau_vmm *vmm = nouveau_cli_vmm(cli); in nouveau_gem_info() local
314 if (vmm->vmm.object.oclass >= NVIF_CLASS_VMM_NV50 && in nouveau_gem_info()
316 vma = nouveau_vma_find(nvbo, vmm); in nouveau_gem_info()
[all …]
/linux/drivers/gpu/drm/nouveau/nvkm/subdev/bar/
H A Dgf100.c34 return gf100_bar(base)->bar[1].vmm; in gf100_bar_bar1_vmm()
63 return gf100_bar(base)->bar[0].vmm; in gf100_bar_bar2_vmm()
103 (bar_id == NVKM_BAR2_INST) ? "bar2" : "bar1", &bar_vm->vmm); in gf100_bar_oneinit_bar()
107 atomic_inc(&bar_vm->vmm->engref[NVKM_SUBDEV_BAR]); in gf100_bar_oneinit_bar()
108 bar_vm->vmm->debug = bar->base.subdev.debug; in gf100_bar_oneinit_bar()
114 ret = nvkm_vmm_boot(bar_vm->vmm); in gf100_bar_oneinit_bar()
119 return nvkm_vmm_join(bar_vm->vmm, bar_vm->inst); in gf100_bar_oneinit_bar()
153 nvkm_vmm_part(bar->bar[1].vmm, bar->bar[1].inst); in gf100_bar_dtor()
154 nvkm_vmm_unref(&bar->bar[1].vmm); in gf100_bar_dtor()
157 nvkm_vmm_part(bar->bar[0].vmm, bar->bar[0].inst); in gf100_bar_dtor()
[all …]
/linux/drivers/gpu/drm/nouveau/nvkm/engine/fifo/
H A Dcgrp.c102 nvkm_vmm_put(vctx->vmm, &vctx->vma); in nvkm_cgrp_vctx_put()
106 if (vctx->vmm) { in nvkm_cgrp_vctx_put()
107 atomic_dec(&vctx->vmm->engref[engn->engine->subdev.type]); in nvkm_cgrp_vctx_put()
108 nvkm_vmm_unref(&vctx->vmm); in nvkm_cgrp_vctx_put()
128 vctx->ectx->engn == engn && vctx->vmm == chan->vmm); in nvkm_cgrp_vctx_get()
150 vctx->vmm = nvkm_vmm_ref(chan->vmm); in nvkm_cgrp_vctx_get()
155 if (vctx->vmm) in nvkm_cgrp_vctx_get()
156 atomic_inc(&vctx->vmm->engref[engn->engine->subdev.type]); in nvkm_cgrp_vctx_get()
184 nvkm_vmm_unref(&cgrp->vmm); in nvkm_cgrp_del()
222 nvkm_cgrp_new(struct nvkm_runl *runl, const char *name, struct nvkm_vmm *vmm, bool hw, in nvkm_cgrp_new() argument
[all …]
H A Dchan.c103 cctx->vctx->ectx->engn == engn && cctx->vctx->vmm == chan->vmm); in nvkm_chan_cctx_get()
284 if (chan->vmm) { in nvkm_chan_del()
285 nvkm_vmm_part(chan->vmm, chan->inst->memory); in nvkm_chan_del()
286 nvkm_vmm_unref(&chan->vmm); in nvkm_chan_del()
346 struct nvkm_cgrp *cgrp, const char *name, bool priv, u32 devm, struct nvkm_vmm *vmm, in nvkm_chan_new_() argument
357 (!func->inst->vmm != !vmm) || in nvkm_chan_new_()
364 runl->func->runqs, runq, func->inst->vmm, vmm, in nvkm_chan_new_()
392 ret = nvkm_cgrp_new(runl, chan->name, vmm, fifo->func->cgrp.force, &chan->cgrp); in nvkm_chan_new_()
400 if (cgrp->runl != runl || cgrp->vmm != vmm) { in nvkm_chan_new_()
401 RUNL_DEBUG(runl, "cgrp %d %d", cgrp->runl != runl, cgrp->vmm != vmm); in nvkm_chan_new_()
[all …]
H A Ducgrp.c86 struct nvkm_vmm *vmm; in nvkm_ucgrp_new() local
102 vmm = nvkm_uvmm_search(oclass->client, args->v0.vmm); in nvkm_ucgrp_new()
103 if (IS_ERR(vmm)) in nvkm_ucgrp_new()
104 return PTR_ERR(vmm); in nvkm_ucgrp_new()
115 ret = nvkm_cgrp_new(runl, args->v0.name, vmm, true, &ucgrp->cgrp); in nvkm_ucgrp_new()
123 nvkm_vmm_unref(&vmm); in nvkm_ucgrp_new()
/linux/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/
H A Dnv50.c121 nv50_instobj_kmap(struct nv50_instobj *iobj, struct nvkm_vmm *vmm) in nv50_instobj_kmap() argument
138 while ((ret = nvkm_vmm_get(vmm, 12, size, &bar))) { in nv50_instobj_kmap()
159 nvkm_vmm_put(vmm, &ebar); in nv50_instobj_kmap()
163 ret = nvkm_memory_map(memory, 0, vmm, bar, NULL, 0); in nv50_instobj_kmap()
168 nvkm_vmm_put(vmm, &bar); in nv50_instobj_kmap()
179 nvkm_vmm_put(vmm, &iobj->bar); in nv50_instobj_kmap()
184 nv50_instobj_map(struct nvkm_memory *memory, u64 offset, struct nvkm_vmm *vmm, in nv50_instobj_map() argument
188 return nvkm_memory_map(memory, offset, vmm, vma, argv, argc); in nv50_instobj_map()
221 struct nvkm_vmm *vmm; in nv50_instobj_acquire() local
241 if ((vmm = nvkm_bar_bar2_vmm(imem->subdev.device))) { in nv50_instobj_acquire()
[all …]
/linux/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/
H A Dfbsr.c35 struct nvkm_vmm *vmm; in r570_fbsr_resume() local
45 vmm = nvkm_bar_bar2_vmm(device); in r570_fbsr_resume()
46 vmm->func->flush(vmm, 0); in r570_fbsr_resume()
54 vmm = nvkm_bar_bar1_vmm(device); in r570_fbsr_resume()
55 vmm->func->flush(vmm, 0); in r570_fbsr_resume()
/linux/drivers/gpu/drm/nouveau/include/nvif/
H A Dvmm.h50 int nvif_vmm_raw_get(struct nvif_vmm *vmm, u64 addr, u64 size, u8 shift);
51 int nvif_vmm_raw_put(struct nvif_vmm *vmm, u64 addr, u64 size, u8 shift);
52 int nvif_vmm_raw_map(struct nvif_vmm *vmm, u64 addr, u64 size, u8 shift,
54 int nvif_vmm_raw_unmap(struct nvif_vmm *vmm, u64 addr, u64 size,
56 int nvif_vmm_raw_sparse(struct nvif_vmm *vmm, u64 addr, u64 size, bool ref);
/linux/arch/xtensa/kernel/
H A Dsyscall.c61 struct vm_area_struct *vmm; in arch_get_unmapped_area() local
85 for_each_vma(vmi, vmm) { in arch_get_unmapped_area()
87 if (addr + len <= vm_start_gap(vmm)) in arch_get_unmapped_area()
90 addr = vmm->vm_end; in arch_get_unmapped_area()

1234