diff options
Diffstat (limited to 'drivers/gpu/drm/msm/msm_gem_vma.c')
| -rw-r--r-- | drivers/gpu/drm/msm/msm_gem_vma.c | 23 | 
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,  	return aspace;  } + +struct msm_gem_address_space * +msm_gem_address_space_create_a2xx(struct device *dev, struct msm_gpu *gpu, +		const char *name, uint64_t va_start, uint64_t va_end) +{ +	struct msm_gem_address_space *aspace; +	u64 size = va_end - va_start; + +	aspace = kzalloc(sizeof(*aspace), GFP_KERNEL); +	if (!aspace) +		return ERR_PTR(-ENOMEM); + +	spin_lock_init(&aspace->lock); +	aspace->name = name; +	aspace->mmu = msm_gpummu_new(dev, gpu); + +	drm_mm_init(&aspace->mm, (va_start >> PAGE_SHIFT), +		size >> PAGE_SHIFT); + +	kref_init(&aspace->kref); + +	return aspace; +}  |