of: iommu: make of_iommu_init() postcore_initcall_sync
The of_iommu_init() is called multiple times by arch code, make it postcore_initcall_sync, then we can drop relevant calls fully. Note, the IOMMUs should have a chance to perform some basic initialisation before we start adding masters to them. So postcore_initcall_sync is good choice, it ensures of_iommu_init() called before of_platform_populate. Acked-by: Rich Felker <dalias@libc.org> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Marek Szyprowski <m.szyprowski@samsung.com> Cc: Rich Felker <dalias@libc.org> Cc: Rob Herring <robh+dt@kernel.org> Cc: Robin Murphy <robin.murphy@arm.com> Cc: Will Deacon <will.deacon@arm.com> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> Acked-by: Joerg Roedel <jroedel@suse.de> Signed-off-by: Rob Herring <robh@kernel.org>
This commit is contained in:
@@ -174,7 +174,7 @@ err_put_node:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void __init of_iommu_init(void)
|
||||
static int __init of_iommu_init(void)
|
||||
{
|
||||
struct device_node *np;
|
||||
const struct of_device_id *match, *matches = &__iommu_of_table;
|
||||
@@ -186,4 +186,7 @@ void __init of_iommu_init(void)
|
||||
pr_err("Failed to initialise IOMMU %s\n",
|
||||
of_node_full_name(np));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
postcore_initcall_sync(of_iommu_init);
|
||||
|
Reference in New Issue
Block a user