Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/msm: don't return NULL from msm_iommu_new()

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.baryshkov@oss.qualcomm.com>
Patchwork: https://patchwork.freedesktop.org/patch/672561/
Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>

authored by

Dmitry Baryshkov and committed by
Rob Clark
618c11ea c94fc6d3

+16 -18
-2
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
··· 1318 1318 struct msm_mmu *mmu; 1319 1319 1320 1320 mmu = msm_iommu_new(gmu->dev, 0); 1321 - if (!mmu) 1322 - return -ENODEV; 1323 1321 if (IS_ERR(mmu)) 1324 1322 return PTR_ERR(mmu); 1325 1323
+1 -3
drivers/gpu/drm/msm/adreno/adreno_gpu.c
··· 202 202 u64 start, size; 203 203 204 204 mmu = msm_iommu_gpu_new(&pdev->dev, gpu, quirks); 205 - if (!mmu) 206 - return ERR_PTR(-ENODEV); 207 - else if (IS_ERR_OR_NULL(mmu)) 205 + if (IS_ERR(mmu)) 208 206 return ERR_CAST(mmu); 209 207 210 208 geometry = msm_iommu_get_geometry(mmu);
+6 -4
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
··· 458 458 mdp4_disable(mdp4_kms); 459 459 mdelay(16); 460 460 461 + if (!device_iommu_mapped(&pdev->dev)) { 462 + DRM_DEV_INFO(dev->dev, "no IOMMU, bailing out\n"); 463 + ret = -ENODEV; 464 + goto fail; 465 + } 466 + 461 467 mmu = msm_iommu_new(&pdev->dev, 0); 462 468 if (IS_ERR(mmu)) { 463 469 ret = PTR_ERR(mmu); 464 - goto fail; 465 - } else if (!mmu) { 466 - DRM_DEV_INFO(dev->dev, "no IOMMU, bailing out\n"); 467 - ret = -ENODEV; 468 470 goto fail; 469 471 } else { 470 472 vm = msm_gem_vm_create(dev, mmu, "mdp4",
+3 -3
drivers/gpu/drm/msm/msm_iommu.c
··· 721 721 int ret; 722 722 723 723 if (!device_iommu_mapped(dev)) 724 - return NULL; 724 + return ERR_PTR(-ENODEV); 725 725 726 726 domain = iommu_paging_domain_alloc(dev); 727 727 if (IS_ERR(domain)) ··· 756 756 struct msm_mmu *mmu; 757 757 758 758 mmu = msm_iommu_new(dev, quirks); 759 - if (IS_ERR_OR_NULL(mmu)) 759 + if (IS_ERR(mmu)) 760 760 return mmu; 761 761 762 762 iommu = to_msm_iommu(mmu); ··· 772 772 struct msm_mmu *mmu; 773 773 774 774 mmu = msm_iommu_new(dev, quirks); 775 - if (IS_ERR_OR_NULL(mmu)) 775 + if (IS_ERR(mmu)) 776 776 return mmu; 777 777 778 778 iommu = to_msm_iommu(mmu);
+6 -6
drivers/gpu/drm/msm/msm_kms.c
··· 193 193 */ 194 194 if (device_iommu_mapped(mdp_dev)) 195 195 iommu_dev = mdp_dev; 196 - else 196 + else if (device_iommu_mapped(mdss_dev)) 197 197 iommu_dev = mdss_dev; 198 - mmu = msm_iommu_disp_new(iommu_dev, 0); 199 - if (IS_ERR(mmu)) 200 - return ERR_CAST(mmu); 201 - 202 - if (!mmu) { 198 + else { 203 199 drm_info(dev, "no IOMMU, bailing out\n"); 204 200 return ERR_PTR(-ENODEV); 205 201 } 202 + 203 + mmu = msm_iommu_disp_new(iommu_dev, 0); 204 + if (IS_ERR(mmu)) 205 + return ERR_CAST(mmu); 206 206 207 207 vm = msm_gem_vm_create(dev, mmu, "mdp_kms", 208 208 0x1000, 0x100000000 - 0x1000, true);