Thread (49 messages) 49 messages, 8 authors, 2015-03-09

[PATCH 05/14] ARM: call reset_controller_of_init from default time_init handler

From: mcoquelin.stm32@gmail.com (Maxime Coquelin)
Date: 2015-02-16 12:03:02
Also in: linux-api, linux-arch, linux-devicetree, linux-gpio, linux-serial, lkml

2015-02-15 23:17 GMT+01:00 Rob Herring [off-list ref]:
On Thu, Feb 12, 2015 at 11:45 AM, Maxime Coquelin
[off-list ref] wrote:
quoted
Some DT ARM platforms need the reset controllers to be initialized before
the timers.
This is the case of the stm32 and sunxi platforms.
I would say this is the exception, not the rule and therefore should
be handled in a machine desc function. Or it could be part of your
timer setup. Or is the bootloader's problem (like arch timer setup).
The only valid way in my opinion would be to implement the init_time
callback (as your first proposal),
duplicating what performs the time_init() function.

Then, if other machines than sunxi and stm32 have some day the same need,
we could consider moving the call to reset_controller_of_init()
function to time_init().
We just want to limit how much this mechanism gets used.
Could you elaborate the reason why we want to limit this mechanism please?
I am not sure to understand.

Thanks,
Maxime
Rob
quoted
This patch adds a call to reset_controller_of_init() to the default
.init_time callback when RESET_CONTROLLER is used by the platform.

Signed-off-by: Maxime Coquelin <mcoquelin.stm32@gmail.com>
---
 arch/arm/kernel/time.c | 4 ++++
 1 file changed, 4 insertions(+)
diff --git a/arch/arm/kernel/time.c b/arch/arm/kernel/time.c
index 0cc7e58..4601b1e 100644
--- a/arch/arm/kernel/time.c
+++ b/arch/arm/kernel/time.c
@@ -20,6 +20,7 @@
 #include <linux/irq.h>
 #include <linux/kernel.h>
 #include <linux/profile.h>
+#include <linux/reset-controller.h>
 #include <linux/sched.h>
 #include <linux/sched_clock.h>
 #include <linux/smp.h>
@@ -117,6 +118,9 @@ void __init time_init(void)
        if (machine_desc->init_time) {
                machine_desc->init_time();
        } else {
+#ifdef CONFIG_RESET_CONTROLLER
+               reset_controller_of_init();
+#endif
 #ifdef CONFIG_COMMON_CLK
                of_clk_init(NULL);
 #endif
--
1.9.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help