[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20160726180132.12764-1-robh@kernel.org>
Date: Tue, 26 Jul 2016 13:01:32 -0500
From: Rob Herring <robh@...nel.org>
To: Chris Zankel <chris@...kel.net>
Cc: linux-kernel@...r.kernel.org, linux-xtensa@...ux-xtensa.org,
Kefeng Wang <wangkefeng.wang@...wei.com>,
Guenter Roeck <linux@...ck-us.net>,
Max Filippov <jcmvbkbc@...il.com>
Subject: [PATCH] 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@...wei.com>
Cc: Guenter Roeck <linux@...ck-us.net>
Cc: Max Filippov <jcmvbkbc@...il.com>
Signed-off-by: Rob Herring <robh@...nel.org>
---
This is on top of Guenter's build fix. Please test and I'll apply. I
tried briefly running under QEMU, but didn't have success. If anyone has
up to date instructions that would be helpful as using these[1] didn't
seem to work.
Rob
[1] http://wiki.linux-xtensa.org/index.php/Xtensa_on_QEMU
arch/xtensa/kernel/setup.c | 9 +++++++++
arch/xtensa/kernel/time.c | 2 --
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/arch/xtensa/kernel/setup.c b/arch/xtensa/kernel/setup.c
index 6f68c60..143251e 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 6ec73c9..b9ad9fe 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();
}
--
2.9.2
Powered by blists - more mailing lists