summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorRob Herring <robh@kernel.org>2016-07-26 11:46:30 -0500
committerRob Herring <robh@kernel.org>2016-07-26 15:04:01 -0500
commite973f4ec130ac0eefb9e69b5139ed8a2768250aa (patch)
tree121da958590ed6d72dd87326cd89447119ae7fc7 /arch
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')
-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 @@
#include <linux/bootmem.h>
#include <linux/kernel.h>
#include <linux/percpu.h>
+#include <linux/clk-provider.h>
#include <linux/cpu.h>
#include <linux/of.h>
#include <linux/of_fdt.h>
@@ -251,6 +252,14 @@ void __init early_init_devtree(void *params)
strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
}
+static int __init xtensa_device_probe(void)
+{
+ of_clk_init(NULL);
+ return 0;
+}
+
+device_initcall(xtensa_device_probe);
+
#endif /* CONFIG_OF */
/*
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 @@
#include <linux/errno.h>
#include <linux/sched.h>
#include <linux/time.h>
-#include <linux/clk-provider.h>
#include <linux/clocksource.h>
#include <linux/clockchips.h>
#include <linux/interrupt.h>
@@ -149,7 +148,6 @@ void __init time_init(void)
local_timer_setup(0);
setup_irq(this_cpu_ptr(&ccount_timer)->evt.irq, &timer_irqaction);
sched_clock_register(ccount_sched_clock_read, 32, ccount_freq);
- of_clk_init(NULL);
clocksource_probe();
}