[PATCH v2 3/5] drm/msm: Stop using iommu_present()

Abhinav Kumar quic_abhinavk at quicinc.com
Wed Jun 15 18:29:12 UTC 2022



On 5/4/2022 5:16 PM, Dmitry Baryshkov wrote:
> Even if some IOMMU has registered itself on the platform "bus", that
> doesn't necessarily mean it provides translation for the device we
> care about. Replace iommu_present() with a more appropriate check.
> 
> On Qualcomm platforms the IOMMU can be specified either for the MDP/DPU
> device or for its parent MDSS device depending on the actual platform.
> Check both of them, since that is how both DPU and MDP5 drivers work.
> 
> Co-developed-by: Robin Murphy <robin.murphy at arm.com>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov at linaro.org>
I have the same question as patch (1) of this series here but i will let 
you answer it there, so this one is,

Reviewed-by: Abhinav Kumar <quic_abhinavk at quicinc.com>
> ---
>   drivers/gpu/drm/msm/msm_drv.c | 10 ++++++++--
>   1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
> index 4a3dda23e3e0..a37a3bbc04d9 100644
> --- a/drivers/gpu/drm/msm/msm_drv.c
> +++ b/drivers/gpu/drm/msm/msm_drv.c
> @@ -266,8 +266,14 @@ bool msm_use_mmu(struct drm_device *dev)
>   {
>   	struct msm_drm_private *priv = dev->dev_private;
>   
> -	/* a2xx comes with its own MMU */
> -	return priv->is_a2xx || iommu_present(&platform_bus_type);
> +	/*
> +	 * a2xx comes with its own MMU
> +	 * On other platforms IOMMU can be declared specified either for the
> +	 * MDP/DPU device or for its parent, MDSS device.
> +	 */
> +	return priv->is_a2xx ||
> +		device_iommu_mapped(dev->dev) ||
> +		device_iommu_mapped(dev->dev->parent);
>   }
>   
>   static int msm_init_vram(struct drm_device *dev)


More information about the dri-devel mailing list