diff options
author | Rob Clark | 2019-01-09 20:25:05 +0100 |
---|---|---|
committer | Rob Clark | 2019-01-29 16:17:34 +0100 |
commit | 388a515f6add79305d9dc9a5d22543be5457fc55 (patch) | |
tree | 039a59f10f4c0806fa68fcd89cb9a933432e86b6 /drivers/gpu/drm/msm/msm_gem.c | |
parent | drm/msm: drop interrupt-names (diff) | |
download | kernel-qcow2-linux-388a515f6add79305d9dc9a5d22543be5457fc55.tar.gz kernel-qcow2-linux-388a515f6add79305d9dc9a5d22543be5457fc55.tar.xz kernel-qcow2-linux-388a515f6add79305d9dc9a5d22543be5457fc55.zip |
drm/msm: honor GPU_READONLY flag
Signed-off-by: Rob Clark <robdclark@gmail.com>
Diffstat (limited to 'drivers/gpu/drm/msm/msm_gem.c')
-rw-r--r-- | drivers/gpu/drm/msm/msm_gem.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c index 20c979a7fc9c..18ca651ab942 100644 --- a/drivers/gpu/drm/msm/msm_gem.c +++ b/drivers/gpu/drm/msm/msm_gem.c @@ -391,6 +391,10 @@ static int msm_gem_pin_iova(struct drm_gem_object *obj, struct msm_gem_object *msm_obj = to_msm_bo(obj); struct msm_gem_vma *vma; struct page **pages; + int prot = IOMMU_READ; + + if (!(msm_obj->flags & MSM_BO_GPU_READONLY)) + prot |= IOMMU_WRITE; WARN_ON(!mutex_is_locked(&msm_obj->lock)); @@ -405,8 +409,8 @@ static int msm_gem_pin_iova(struct drm_gem_object *obj, if (IS_ERR(pages)) return PTR_ERR(pages); - return msm_gem_map_vma(aspace, vma, msm_obj->sgt, - obj->size >> PAGE_SHIFT); + return msm_gem_map_vma(aspace, vma, prot, + msm_obj->sgt, obj->size >> PAGE_SHIFT); } /* get iova and pin it. Should have a matching put */ |