As we've dropped no-IOMMU support, there is no reason to specially
handle the no-IOMMU case inside msm_iommu_new(). Make it return -ENODEV
if there is no IOMMU (instead of returning NULL) and simplify all
calling sites accordingly.

Signed-off-by: Dmitry Baryshkov <dmitry.barysh...@oss.qualcomm.com>
---
 drivers/gpu/drm/msm/adreno/a6xx_gmu.c    |  2 --
 drivers/gpu/drm/msm/adreno/adreno_gpu.c  |  4 +---
 drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 10 ++++++----
 drivers/gpu/drm/msm/msm_iommu.c          |  6 +++---
 drivers/gpu/drm/msm/msm_kms.c            | 12 ++++++------
 5 files changed, 16 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
index 
28e6705c6da682c7b41c748e375dda59a6551898..92958c73a5ee605a45314ebbcf2136754fe2fae7
 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
@@ -1318,8 +1318,6 @@ static int a6xx_gmu_memory_probe(struct drm_device *drm, 
struct a6xx_gmu *gmu)
        struct msm_mmu *mmu;
 
        mmu = msm_iommu_new(gmu->dev, 0);
-       if (!mmu)
-               return -ENODEV;
        if (IS_ERR(mmu))
                return PTR_ERR(mmu);
 
diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c 
b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
index 
f1230465bf0d0840274a6eb03a10c4df3a7a68d3..21b4951b065ba51b2a4d1bcf63f912f220d3a1f0
 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
@@ -209,9 +209,7 @@ adreno_iommu_create_vm(struct msm_gpu *gpu,
        u64 start, size;
 
        mmu = msm_iommu_gpu_new(&pdev->dev, gpu, quirks);
-       if (!mmu)
-               return ERR_PTR(-ENODEV);
-       else if (IS_ERR_OR_NULL(mmu))
+       if (IS_ERR(mmu))
                return ERR_CAST(mmu);
 
        geometry = msm_iommu_get_geometry(mmu);
diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c 
b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
index 
4d1ea9b2619170335ab4d2a2ee46f31e785b2c02..66bfa96965be275270751cba770521cfde2a7004
 100644
--- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
+++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
@@ -458,14 +458,16 @@ static int mdp4_kms_init(struct drm_device *dev)
        mdp4_disable(mdp4_kms);
        mdelay(16);
 
+       if (!device_iommu_mapped(&pdev->dev)) {
+               DRM_DEV_INFO(dev->dev, "no IOMMU, bailing out\n");
+               ret = -ENODEV;
+               goto fail;
+       }
+
        mmu = msm_iommu_new(&pdev->dev, 0);
        if (IS_ERR(mmu)) {
                ret = PTR_ERR(mmu);
                goto fail;
-       } else if (!mmu) {
-               DRM_DEV_INFO(dev->dev, "no IOMMU, bailing out\n");
-               ret = -ENODEV;
-               goto fail;
        } else {
                vm  = msm_gem_vm_create(dev, mmu, "mdp4",
                                        0x1000, 0x100000000 - 0x1000,
diff --git a/drivers/gpu/drm/msm/msm_iommu.c b/drivers/gpu/drm/msm/msm_iommu.c
index 
76cdd5ea06a02eafa6f76e1c3fb03e0cdc7fd469..6b3d840d8d6786e60b0cb6670f62605969db6a9a
 100644
--- a/drivers/gpu/drm/msm/msm_iommu.c
+++ b/drivers/gpu/drm/msm/msm_iommu.c
@@ -721,7 +721,7 @@ struct msm_mmu *msm_iommu_new(struct device *dev, unsigned 
long quirks)
        int ret;
 
        if (!device_iommu_mapped(dev))
-               return NULL;
+               return ERR_PTR(-ENODEV);
 
        domain = iommu_paging_domain_alloc(dev);
        if (IS_ERR(domain))
@@ -756,7 +756,7 @@ struct msm_mmu *msm_iommu_disp_new(struct device *dev, 
unsigned long quirks)
        struct msm_mmu *mmu;
 
        mmu = msm_iommu_new(dev, quirks);
-       if (IS_ERR_OR_NULL(mmu))
+       if (IS_ERR(mmu))
                return mmu;
 
        iommu = to_msm_iommu(mmu);
@@ -772,7 +772,7 @@ struct msm_mmu *msm_iommu_gpu_new(struct device *dev, 
struct msm_gpu *gpu, unsig
        struct msm_mmu *mmu;
 
        mmu = msm_iommu_new(dev, quirks);
-       if (IS_ERR_OR_NULL(mmu))
+       if (IS_ERR(mmu))
                return mmu;
 
        iommu = to_msm_iommu(mmu);
diff --git a/drivers/gpu/drm/msm/msm_kms.c b/drivers/gpu/drm/msm/msm_kms.c
index 
4c4dcb095c4df97de42d0673aa2842010a249dca..725367157d90e45854cb8a22ea25a3fa3bb218be
 100644
--- a/drivers/gpu/drm/msm/msm_kms.c
+++ b/drivers/gpu/drm/msm/msm_kms.c
@@ -193,17 +193,17 @@ struct drm_gpuvm *msm_kms_init_vm(struct drm_device *dev)
         */
        if (device_iommu_mapped(mdp_dev))
                iommu_dev = mdp_dev;
-       else
+       else if (device_iommu_mapped(mdss_dev))
                iommu_dev = mdss_dev;
-       mmu = msm_iommu_disp_new(iommu_dev, 0);
-       if (IS_ERR(mmu))
-               return ERR_CAST(mmu);
-
-       if (!mmu) {
+       else {
                drm_info(dev, "no IOMMU, bailing out\n");
                return ERR_PTR(-ENODEV);
        }
 
+       mmu = msm_iommu_disp_new(iommu_dev, 0);
+       if (IS_ERR(mmu))
+               return ERR_CAST(mmu);
+
        vm = msm_gem_vm_create(dev, mmu, "mdp_kms",
                               0x1000, 0x100000000 - 0x1000, true);
        if (IS_ERR(vm)) {

-- 
2.47.2

Reply via email to