Lines Matching refs:vma
32 struct msm_gem_vma *vma) in msm_gem_purge_vma() argument
34 unsigned size = vma->node.size << PAGE_SHIFT; in msm_gem_purge_vma()
37 if (WARN_ON(vma->inuse > 0)) in msm_gem_purge_vma()
41 if (!vma->mapped) in msm_gem_purge_vma()
45 aspace->mmu->funcs->unmap(aspace->mmu, vma->iova, size); in msm_gem_purge_vma()
47 vma->mapped = false; in msm_gem_purge_vma()
52 struct msm_gem_vma *vma) in msm_gem_unmap_vma() argument
54 if (!WARN_ON(!vma->iova)) in msm_gem_unmap_vma()
55 vma->inuse--; in msm_gem_unmap_vma()
60 struct msm_gem_vma *vma, int prot, in msm_gem_map_vma() argument
66 if (WARN_ON(!vma->iova)) in msm_gem_map_vma()
70 vma->inuse++; in msm_gem_map_vma()
72 if (vma->mapped) in msm_gem_map_vma()
75 vma->mapped = true; in msm_gem_map_vma()
78 ret = aspace->mmu->funcs->map(aspace->mmu, vma->iova, sgt, in msm_gem_map_vma()
82 vma->mapped = false; in msm_gem_map_vma()
89 struct msm_gem_vma *vma) in msm_gem_close_vma() argument
91 if (WARN_ON(vma->inuse > 0 || vma->mapped)) in msm_gem_close_vma()
95 if (vma->iova) in msm_gem_close_vma()
96 drm_mm_remove_node(&vma->node); in msm_gem_close_vma()
99 vma->iova = 0; in msm_gem_close_vma()
106 struct msm_gem_vma *vma, int npages) in msm_gem_init_vma() argument
110 if (WARN_ON(vma->iova)) in msm_gem_init_vma()
114 ret = drm_mm_insert_node(&aspace->mm, &vma->node, npages); in msm_gem_init_vma()
120 vma->iova = vma->node.start << PAGE_SHIFT; in msm_gem_init_vma()
121 vma->mapped = false; in msm_gem_init_vma()