aboutsummaryrefslogtreecommitdiffstats
path: root/arch/xtensa
diff options
context:
space:
mode:
authorRob Herring <robh@kernel.org>2016-07-26 12:46:30 -0400
committerRob Herring <robh@kernel.org>2016-07-26 16:04:01 -0400
commite973f4ec130ac0eefb9e69b5139ed8a2768250aa (patch)
tree121da958590ed6d72dd87326cd89447119ae7fc7 /arch/xtensa
parentd02014b2b764f058366b2f9dd425915fb900687c (diff)
xtensa: Partially Revert "xtensa: Remove unnecessary of_platform_populate with default match table"
This partially reverts commit 69d99e6c0d62 keeping only the main purpose of the original commit which is the removal of of_platform_populate() call. The moving of of_clk_init() caused changes in the initialization order breaking booting. Fixes: 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate with default match table") Cc: Kefeng Wang <wangkefeng.wang@huawei.com> Cc: Guenter Roeck <linux@roeck-us.net> Tested-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Rob Herring <robh@kernel.org>
Diffstat (limited to 'arch/xtensa')
-rw-r--r--arch/xtensa/kernel/setup.c9
-rw-r--r--arch/xtensa/kernel/time.c2
2 files changed, 9 insertions, 2 deletions
diff --git a/arch/xtensa/kernel/setup.c b/arch/xtensa/kernel/setup.c
index 6f68c6045a70..143251ede897 100644
--- a/arch/xtensa/kernel/setup.c
+++ b/arch/xtensa/kernel/setup.c
@@ -22,6 +22,7 @@
22#include <linux/bootmem.h> 22#include <linux/bootmem.h>
23#include <linux/kernel.h> 23#include <linux/kernel.h>
24#include <linux/percpu.h> 24#include <linux/percpu.h>
25#include <linux/clk-provider.h>
25#include <linux/cpu.h> 26#include <linux/cpu.h>
26#include <linux/of.h> 27#include <linux/of.h>
27#include <linux/of_fdt.h> 28#include <linux/of_fdt.h>
@@ -251,6 +252,14 @@ void __init early_init_devtree(void *params)
251 strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE); 252 strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
252} 253}
253 254
255static int __init xtensa_device_probe(void)
256{
257 of_clk_init(NULL);
258 return 0;
259}
260
261device_initcall(xtensa_device_probe);
262
254#endif /* CONFIG_OF */ 263#endif /* CONFIG_OF */
255 264
256/* 265/*
diff --git a/arch/xtensa/kernel/time.c b/arch/xtensa/kernel/time.c
index 6ec73c9f415d..b9ad9feadc2d 100644
--- a/arch/xtensa/kernel/time.c
+++ b/arch/xtensa/kernel/time.c
@@ -15,7 +15,6 @@
15#include <linux/errno.h> 15#include <linux/errno.h>
16#include <linux/sched.h> 16#include <linux/sched.h>
17#include <linux/time.h> 17#include <linux/time.h>
18#include <linux/clk-provider.h>
19#include <linux/clocksource.h> 18#include <linux/clocksource.h>
20#include <linux/clockchips.h> 19#include <linux/clockchips.h>
21#include <linux/interrupt.h> 20#include <linux/interrupt.h>
@@ -149,7 +148,6 @@ void __init time_init(void)
149 local_timer_setup(0); 148 local_timer_setup(0);
150 setup_irq(this_cpu_ptr(&ccount_timer)->evt.irq, &timer_irqaction); 149 setup_irq(this_cpu_ptr(&ccount_timer)->evt.irq, &timer_irqaction);
151 sched_clock_register(ccount_sched_clock_read, 32, ccount_freq); 150 sched_clock_register(ccount_sched_clock_read, 32, ccount_freq);
152 of_clk_init(NULL);
153 clocksource_probe(); 151 clocksource_probe();
154} 152}
155 153