diff options
author | Catalin Marinas <catalin.marinas@arm.com> | 2013-05-14 05:51:18 -0400 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2013-05-14 10:44:46 -0400 |
commit | c560ecfe9617c629ad09b07edb7523c87b2c9619 (patch) | |
tree | d9d2871a547a671b5d1f0bfa87f100cb7623e27f | |
parent | 9c413e25d95fd3c0abe23eadad66191b22baa549 (diff) |
arm64: Invoke the of_platform_populate() at arch_initcall() level
The of_platform_populate() is currently invoked at device_initcall()
level. There are however drivers that use platform_driver_probe()
directly and they need the devices to be populated. This patch makes the
of_platform_populate() and arch_initcall().
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Reported-by: Benoit Lecardonnel <Benoit.Lecardonnel@synopsys.com>
Tested-by: Benoit Lecardonnel <Benoit.Lecardonnel@synopsys.com>
-rw-r--r-- | arch/arm64/kernel/setup.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c index 6a9a53292590..add6ea616843 100644 --- a/arch/arm64/kernel/setup.c +++ b/arch/arm64/kernel/setup.c | |||
@@ -282,12 +282,13 @@ void __init setup_arch(char **cmdline_p) | |||
282 | #endif | 282 | #endif |
283 | } | 283 | } |
284 | 284 | ||
285 | static int __init arm64_of_clk_init(void) | 285 | static int __init arm64_device_init(void) |
286 | { | 286 | { |
287 | of_clk_init(NULL); | 287 | of_clk_init(NULL); |
288 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); | ||
288 | return 0; | 289 | return 0; |
289 | } | 290 | } |
290 | arch_initcall(arm64_of_clk_init); | 291 | arch_initcall(arm64_device_init); |
291 | 292 | ||
292 | static DEFINE_PER_CPU(struct cpu, cpu_data); | 293 | static DEFINE_PER_CPU(struct cpu, cpu_data); |
293 | 294 | ||
@@ -305,13 +306,6 @@ static int __init topology_init(void) | |||
305 | } | 306 | } |
306 | subsys_initcall(topology_init); | 307 | subsys_initcall(topology_init); |
307 | 308 | ||
308 | static int __init arm64_device_probe(void) | ||
309 | { | ||
310 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); | ||
311 | return 0; | ||
312 | } | ||
313 | device_initcall(arm64_device_probe); | ||
314 | |||
315 | static const char *hwcap_str[] = { | 309 | static const char *hwcap_str[] = { |
316 | "fp", | 310 | "fp", |
317 | "asimd", | 311 | "asimd", |