aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/msm/msm_gem_vma.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/msm/msm_gem_vma.c')
-rw-r--r--drivers/gpu/drm/msm/msm_gem_vma.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/msm_gem_vma.c b/drivers/gpu/drm/msm/msm_gem_vma.c
index ee46d8321b05..557360788084 100644
--- a/drivers/gpu/drm/msm/msm_gem_vma.c
+++ b/drivers/gpu/drm/msm/msm_gem_vma.c
@@ -159,3 +159,26 @@ msm_gem_address_space_create(struct device *dev, struct iommu_domain *domain,
159 159
160 return aspace; 160 return aspace;
161} 161}
162
163struct msm_gem_address_space *
164msm_gem_address_space_create_a2xx(struct device *dev, struct msm_gpu *gpu,
165 const char *name, uint64_t va_start, uint64_t va_end)
166{
167 struct msm_gem_address_space *aspace;
168 u64 size = va_end - va_start;
169
170 aspace = kzalloc(sizeof(*aspace), GFP_KERNEL);
171 if (!aspace)
172 return ERR_PTR(-ENOMEM);
173
174 spin_lock_init(&aspace->lock);
175 aspace->name = name;
176 aspace->mmu = msm_gpummu_new(dev, gpu);
177
178 drm_mm_init(&aspace->mm, (va_start >> PAGE_SHIFT),
179 size >> PAGE_SHIFT);
180
181 kref_init(&aspace->kref);
182
183 return aspace;
184}