mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-16 03:19:00 -05:00
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>
This commit is contained in:
committed by
Rob Clark
parent
c94fc6d356
commit
618c11ea0b
@@ -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);
|
||||
|
||||
|
||||
@@ -202,9 +202,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);
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
Reference in New Issue
Block a user