Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 96302d89 authored by Joerg Roedel's avatar Joerg Roedel
Browse files

arm/tegra: Call bus_set_iommu() after iommu_device_register()



The bus_set_iommu() function will call the add_device()
call-back which needs the iommu to be registered.

Reported-by: default avatarJon Hunter <jonathanh@nvidia.com>
Fixes: 0b480e44 ('iommu/tegra: Add support for struct iommu_device')
Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
parent c184ae83
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -949,10 +949,6 @@ struct tegra_smmu *tegra_smmu_probe(struct device *dev,

	tegra_smmu_ahb_enable();

	err = bus_set_iommu(&platform_bus_type, &tegra_smmu_ops);
	if (err < 0)
		return ERR_PTR(err);

	err = iommu_device_sysfs_add(&smmu->iommu, dev, NULL, dev_name(dev));
	if (err)
		return ERR_PTR(err);
@@ -965,6 +961,13 @@ struct tegra_smmu *tegra_smmu_probe(struct device *dev,
		return ERR_PTR(err);
	}

	err = bus_set_iommu(&platform_bus_type, &tegra_smmu_ops);
	if (err < 0) {
		iommu_device_unregister(&smmu->iommu);
		iommu_device_sysfs_remove(&smmu->iommu);
		return ERR_PTR(err);
	}

	if (IS_ENABLED(CONFIG_DEBUG_FS))
		tegra_smmu_debugfs_init(smmu);