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

From: Maxime Coquelin
Date: Mon Feb 16 2015 - 07:03:05 EST


2015-02-15 23:17 GMT+01:00 Rob Herring <robherring2@xxxxxxxxx>:
> On Thu, Feb 12, 2015 at 11:45 AM, Maxime Coquelin
> <mcoquelin.stm32@xxxxxxxxx> wrote:
>> 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
>
>>
>> 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@xxxxxxxxx>
>> ---
>> 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
>>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/