]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
iommu/arm-smmu: Don't register fwnode for legacy binding
authorRobin Murphy <robin.murphy@arm.com>
Tue, 21 Nov 2023 18:04:01 +0000 (18:04 +0000)
committerJoerg Roedel <jroedel@suse.de>
Mon, 27 Nov 2023 10:03:15 +0000 (11:03 +0100)
When using the legacy binding we bypass the of_xlate mechanism, so avoid
registering the instance fwnodes which act as keys for that. This will
help __iommu_probe_device() to retrieve the registered ops the same way
as for x86 etc. when no fwspec has previously been set up by of_xlate.

Acked-by: Will Deacon <will@kernel.org>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Jerry Snitselaar <jsnitsel@redhat.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Link: https://lore.kernel.org/r/18b0f812a42a74dd6924aea24e68ab409d6e1b52.1700589539.git.robin.murphy@arm.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/arm/arm-smmu/arm-smmu.c

index d6d1a2a55cc0692fb02f0f58b901ac438c71604c..4b83a3adacd6e957e1f224af95d6e42446503ff5 100644 (file)
@@ -2161,7 +2161,8 @@ static int arm_smmu_device_probe(struct platform_device *pdev)
                return err;
        }
 
-       err = iommu_device_register(&smmu->iommu, &arm_smmu_ops, dev);
+       err = iommu_device_register(&smmu->iommu, &arm_smmu_ops,
+                                   using_legacy_binding ? NULL : dev);
        if (err) {
                dev_err(dev, "Failed to register iommu\n");
                iommu_device_sysfs_remove(&smmu->iommu);