This patch adds code, which detach sub-device nodes from default iommu
domain if such has been configured. This lets Exynos DRM driver to properly
attach sub-devices to its own, common for all sub-devices domain.

Signed-off-by: Marek Szyprowski <m.szyprow...@samsung.com>
Tested-by: Javier Martinez Canillas <javier.marti...@collabora.co.uk>
---
 drivers/gpu/drm/exynos/exynos_drm_iommu.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_iommu.c 
b/drivers/gpu/drm/exynos/exynos_drm_iommu.c
index b32b291f88ff..323601a52a25 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_iommu.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_iommu.c
@@ -100,6 +100,9 @@ int drm_iommu_attach_device(struct drm_device *drm_dev,
 
        dma_set_max_seg_size(subdrv_dev, 0xffffffffu);
 
+       if (subdrv_dev->archdata.mapping)
+               arm_iommu_detach_device(subdrv_dev);
+
        ret = arm_iommu_attach_device(subdrv_dev, dev->archdata.mapping);
        if (ret < 0) {
                DRM_DEBUG_KMS("failed iommu attach.\n");
-- 
1.9.2

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to