Commit b571cb52 authored by Dmitry Baryshkov's avatar Dmitry Baryshkov Committed by Rob Clark
Browse files

drm/msm: switch msm_kms_init_aspace() to use device_iommu_mapped()



Change msm_kms_init_aspace() to use generic function
device_iommu_mapped() instead of the fwnode-specific interface
dev_iommu_fwspec_get(). While we are at it, stop referencing
platform_bus_type directly and use the bus of the IOMMU device.

Suggested-by: default avatarRobin Murphy <robin.murphy@arm.com>
Reviewed-by: default avatarRobin Murphy <robin.murphy@arm.com>
Signed-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/489703/
Link: https://lore.kernel.org/r/20220616081106.350262-6-dmitry.baryshkov@linaro.org


Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
parent 40ae54ed
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -277,21 +277,21 @@ struct msm_gem_address_space *msm_kms_init_aspace(struct drm_device *dev)
	struct device *mdss_dev = mdp_dev->parent;
	struct device *iommu_dev;

	domain = iommu_domain_alloc(&platform_bus_type);
	if (!domain) {
		drm_info(dev, "no IOMMU, fallback to phys contig buffers for scanout\n");
		return NULL;
	}

	/*
	 * IOMMUs can be a part of MDSS device tree binding, or the
	 * MDP/DPU device.
	 */
	if (dev_iommu_fwspec_get(mdp_dev))
	if (device_iommu_mapped(mdp_dev))
		iommu_dev = mdp_dev;
	else
		iommu_dev = mdss_dev;

	domain = iommu_domain_alloc(iommu_dev->bus);
	if (!domain) {
		drm_info(dev, "no IOMMU, fallback to phys contig buffers for scanout\n");
		return NULL;
	}

	mmu = msm_iommu_new(iommu_dev, domain);
	if (IS_ERR(mmu)) {
		iommu_domain_free(domain);