[PATCH 01/11] ARM: integrator: use new init_early for clock tree init

Rob Herring robherring2 at gmail.com
Fri Feb 4 14:53:12 EST 2011


Russell,

On 02/04/2011 01:34 PM, Russell King - ARM Linux wrote:
> On Fri, Feb 04, 2011 at 01:27:20PM -0600, Rob Herring wrote:
>> Russell,
>>
>> On 01/27/2011 07:46 AM, Russell King - ARM Linux wrote:
>>> Initialize the clock tree early.
>>>
>>> Signed-off-by: Russell King<rmk+kernel at arm.linux.org.uk>
>>> ---
>>>    arch/arm/mach-integrator/common.h        |    1 +
>>>    arch/arm/mach-integrator/core.c          |    7 +++++--
>>>    arch/arm/mach-integrator/integrator_ap.c |    3 ++-
>>>    arch/arm/mach-integrator/integrator_cp.c |   11 +++++++++--
>>>    4 files changed, 17 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/arch/arm/mach-integrator/common.h b/arch/arm/mach-integrator/common.h
>>> index 5f96e15..a08f9b0 100644
>>> --- a/arch/arm/mach-integrator/common.h
>>> +++ b/arch/arm/mach-integrator/common.h
>>> @@ -1 +1,2 @@
>>> +void integrator_init_early(void);
>>>    void integrator_reserve(void);
>>> diff --git a/arch/arm/mach-integrator/core.c b/arch/arm/mach-integrator/core.c
>>> index b8e884b..77315b9 100644
>>> --- a/arch/arm/mach-integrator/core.c
>>> +++ b/arch/arm/mach-integrator/core.c
>>> @@ -144,12 +144,15 @@ static struct clk_lookup lookups[] = {
>>>    	}
>>>    };
>>>
>>> +void __init integrator_init_early(void)
>>> +{
>>> +	clkdev_add_table(lookups, ARRAY_SIZE(lookups));
>>> +}
>>> +
>>
>> One potential issue with init_early is kmalloc is not up yet. So moving
>> clock init here will be an issue when/if clocks are converted to device
>> tree or if any platforms do dynamic allocations for their clock tree.
>
> That can't be avoided, because the long term plan is to move the sp804
> and twd timers over to using the clk API - and system timers are
> initialized prior to kmalloc.

setup_arch is before mm_init, and init_IRQ and time_init are after 
mm_init. My testing shows OF clock init works fine in the timer init.

Rob



More information about the linux-arm-kernel mailing list