ACPI/IORT: Add function to check SMMUs drivers presence
The IOMMU probe deferral implementation requires a mechanism to detect if drivers for SMMU components are built-in in the kernel to detect whether IOMMU configuration for a given device should be deferred (ie SMMU drivers present but still not probed) or not (drivers not present). Add a simple function to IORT to detect if SMMU drivers for SMMU components managed by IORT are built-in in the kernel. Tested-by: Hanjun Guo <hanjun.guo@linaro.org> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Reviewed-by: Robin Murphy <robin.murphy@arm.com> Cc: Sricharan R <sricharan@codeaurora.org> Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
parent
3f1866779c
commit
1d9029d440
@ -523,6 +523,19 @@ static int arm_smmu_iort_xlate(struct device *dev, u32 streamid,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool iort_iommu_driver_enabled(u8 type)
|
||||||
|
{
|
||||||
|
switch (type) {
|
||||||
|
case ACPI_IORT_NODE_SMMU_V3:
|
||||||
|
return IS_BUILTIN(CONFIG_ARM_SMMU_V3);
|
||||||
|
case ACPI_IORT_NODE_SMMU:
|
||||||
|
return IS_BUILTIN(CONFIG_ARM_SMMU);
|
||||||
|
default:
|
||||||
|
pr_warn("IORT node type %u does not describe an SMMU\n", type);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static const struct iommu_ops *iort_iommu_xlate(struct device *dev,
|
static const struct iommu_ops *iort_iommu_xlate(struct device *dev,
|
||||||
struct acpi_iort_node *node,
|
struct acpi_iort_node *node,
|
||||||
u32 streamid)
|
u32 streamid)
|
||||||
|
Loading…
Reference in New Issue
Block a user