drm/msm: Stop using iommu_present()
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@arm.com> Signed-off-by: Robin Murphy <robin.murphy@arm.com> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com> Patchwork: https://patchwork.freedesktop.org/patch/489699/ Link: https://lore.kernel.org/r/20220616081106.350262-4-dmitry.baryshkov@linaro.org Signed-off-by: Rob Clark <robdclark@chromium.org>
This commit is contained in:
parent
8010b14e62
commit
8cb72adb1c
|
@ -271,8 +271,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)
|
||||
|
|
Loading…
Reference in New Issue