Message ID | 1373021097-32420-11-git-send-email-hdoyu@nvidia.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 07/05/2013 04:44 AM, Hiroshi Doyu wrote: > Move IOMMU to core_initcall in order to instanciate this device earlier > than others since IOMMU driver needs to reigster other platform > devices as IOMMU'able. If both the AHB and SMMU driver are core_initcall, there's no guarantee at all re: which order they'll get probed in. Deferred probe won't help here, since I don't think it's guaranteed to be repeated, so if the probe order is: 1) SMMU (fails since AHB isn't available) 2) AHB ... then the SMMU might not get probed until /much/ later; probably after devices that are affected by the SMMU are probed. However, it all works out if the probe order just accidentally happens to be: 1) AHB 2) SMMU. So, this really doesn't look like a viable solution.
diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c index f6f120e..4c16c90 100644 --- a/drivers/iommu/tegra-smmu.c +++ b/drivers/iommu/tegra-smmu.c @@ -1288,7 +1288,7 @@ static void __exit tegra_smmu_exit(void) platform_driver_unregister(&tegra_smmu_driver); } -subsys_initcall(tegra_smmu_init); +core_initcall(tegra_smmu_init); module_exit(tegra_smmu_exit); MODULE_DESCRIPTION("IOMMU API for SMMU in Tegra30");
Move IOMMU to core_initcall in order to instanciate this device earlier than others since IOMMU driver needs to reigster other platform devices as IOMMU'able. Signed-off-by: Hiroshi Doyu <hdoyu@nvidia.com> --- drivers/iommu/tegra-smmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)