Re: [Freedreno] [PATCH v2 2/9] drm/msm: add internal MSM_BO_MAP_PRIV flag
From: Jordan Crouse
Date: Thu Apr 23 2020 - 11:26:10 EST
On Tue, Apr 21, 2020 at 07:41:20PM -0400, Jonathan Marek wrote:
> This flag sets IOMMU_PRIV, which is required for some a6xx GMU objects.
The GMU doesn't _need_ privileged surfaces, but it sure is a good idea.
As a bonus with the APRIV bit on some a6xx targets we can set all of the
global buffers as privileged so people can't go out and overwrite the memstore
any more.
Reviewed-by: Jordan Crouse <jcrouse@xxxxxxxxxxxxxxx>
> Signed-off-by: Jonathan Marek <jonathan@xxxxxxxx>
> ---
> drivers/gpu/drm/msm/msm_gem.c | 3 +++
> drivers/gpu/drm/msm/msm_gem.h | 1 +
> 2 files changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c
> index d8f56a34c117..6277fde13df9 100644
> --- a/drivers/gpu/drm/msm/msm_gem.c
> +++ b/drivers/gpu/drm/msm/msm_gem.c
> @@ -428,6 +428,9 @@ static int msm_gem_pin_iova(struct drm_gem_object *obj,
> if (!(msm_obj->flags & MSM_BO_GPU_READONLY))
> prot |= IOMMU_WRITE;
>
> + if (msm_obj->flags & MSM_BO_MAP_PRIV)
> + prot |= IOMMU_PRIV;
> +
> WARN_ON(!mutex_is_locked(&msm_obj->lock));
>
> if (WARN_ON(msm_obj->madv != MSM_MADV_WILLNEED))
> diff --git a/drivers/gpu/drm/msm/msm_gem.h b/drivers/gpu/drm/msm/msm_gem.h
> index 30584eaf8cc8..972490b14ba5 100644
> --- a/drivers/gpu/drm/msm/msm_gem.h
> +++ b/drivers/gpu/drm/msm/msm_gem.h
> @@ -13,6 +13,7 @@
>
> /* Additional internal-use only BO flags: */
> #define MSM_BO_STOLEN 0x10000000 /* try to use stolen/splash memory */
> +#define MSM_BO_MAP_PRIV 0x20000000 /* use IOMMU_PRIV when mapping */
>
> struct msm_gem_address_space {
> const char *name;
> --
> 2.26.1
>
> _______________________________________________
> Freedreno mailing list
> Freedreno@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/freedreno
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project