Subject: [PATCH 01/26] ARM: nomadik: move mtu setup to clocksource init

From: [email-masked] (Sebastian Hesselbarth)
Date: Sun, 22 Sep 2013 14:18:12 +0200

On 09/20/2013 11:13 PM, Sebastian Hesselbarth wrote:
> On 09/18/2013 07:53 PM, Sebastian Hesselbarth wrote:
>> MTU timer initialization is stuffed into .init_time callback, while
>> cpu8815_timer_init_of again maps addresses from the same device node.
>> Therefore, this patch moves mtu setup from to clocksource init.
>>
>> Signed-off-by: Sebastian Hesselbarth <[email-masked]>
>> ---
>> Cc: Olof Johansson <[email-masked]>
>> Cc: Arnd Bergmann <[email-masked]>
>> Cc: Alessandro Rubini <[email-masked]>
>> Cc: Linus Walleij <[email-masked]>
>> Cc: STEricsson <[email-masked]>
>> Cc: Russell King <[email-masked]>
>> Cc: Daniel Lezcano <[email-masked]>
>> Cc: Thomas Gleixner <[email-masked]>
>> Cc: linux-arm-kernel at lists.infradead.org
>> Cc: linux-kernel at vger.kernel.org
>> ---
>>   arch/arm/mach-nomadik/cpu-8815.c  |   26 --------------------------
>>   drivers/clocksource/nomadik-mtu.c |   11 +++++++++++
>>   2 files changed, 11 insertions(+), 26 deletions(-)
>>
>> diff --git a/arch/arm/mach-nomadik/cpu-8815.c
>> b/arch/arm/mach-nomadik/cpu-8815.c
>> index 13e0df9..0fcb149 100644
>> --- a/arch/arm/mach-nomadik/cpu-8815.c
>> +++ b/arch/arm/mach-nomadik/cpu-8815.c
>> @@ -113,36 +113,10 @@ static void cpu8815_restart(enum reboot_mode
>> mode, const char *cmd)
>>       writel(1, srcbase + 0x18);
>>   }
>>
>> -/* Initial value for SRC control register: all timers use MXTAL/8
>> source */
>> -#define SRC_CR_INIT_MASK    0x00007fff
>> -#define SRC_CR_INIT_VAL        0x2aaa8000
>> -
>>   static void __init cpu8815_timer_init_of(void)
>>   {
>> -    struct device_node *mtu;
>> -    void __iomem *base;
>> -    int irq;
>> -    u32 src_cr;
>> -
>>       /* We need this to be up now */
>>       nomadik_clk_init();
>> -
>> -    mtu = of_find_node_by_path("/mtu at 101e2000");
>> -    if (!mtu)
>> -        return;
>> -    base = of_iomap(mtu, 0);
>> -    if (WARN_ON(!base))
>> -        return;
>> -    irq = irq_of_parse_and_map(mtu, 0);
>> -
>> -    pr_info("Remapped MTU @ %p, irq: %d\n", base, irq);
>> -
>> -    /* Configure timer sources in "system reset controller" ctrl reg */
>> -    src_cr = readl(base);
>> -    src_cr &= SRC_CR_INIT_MASK;
>> -    src_cr |= SRC_CR_INIT_VAL;
>> -    writel(src_cr, base);
>> -
>>       clocksource_of_init();
>>   }
>
> Linus,
>
> looking at the fix you posted at [1], can I assume that the above it
> redundant and can be removed?
>
> [1] http://marc.info/?l=linux-arm-kernel&m=137910161418706&w=2

Linus,

can you please prepare a topic branch with the above patch. I can
merge that one with a stable commit id then. Also, I will rebase the
remaining nomadik patches for you to test.

Sebastian

>> diff --git a/drivers/clocksource/nomadik-mtu.c
>> b/drivers/clocksource/nomadik-mtu.c
>> index 1b74bea..b9f97ba 100644
>> --- a/drivers/clocksource/nomadik-mtu.c
>> +++ b/drivers/clocksource/nomadik-mtu.c
>> @@ -257,12 +257,17 @@ void __init nmdk_timer_init(void __iomem *base,
>> int irq)
>>       __nmdk_timer_init(base, irq, pclk0, clk0);
>>   }
>>
>> +/* Initial value for SRC control register: all timers use MXTAL/8
>> source */
>> +#define SRC_CR_INIT_MASK    0x00007fff
>> +#define SRC_CR_INIT_VAL        0x2aaa8000
>> +
>>   static void __init nmdk_timer_of_init(struct device_node *node)
>>   {
>>       struct clk *pclk;
>>       struct clk *clk;
>>       void __iomem *base;
>>       int irq;
>> +    u32 src_cr;
>>
>>       base = of_iomap(node, 0);
>>       if (!base)
>> @@ -280,6 +285,12 @@ static void __init nmdk_timer_of_init(struct
>> device_node *node)
>>       if (irq <= 0)
>>           panic("Can't parse IRQ");
>>
>> +    /* Configure timer sources in "system reset controller" ctrl reg */
>> +    src_cr = readl(base);
>> +    src_cr &= SRC_CR_INIT_MASK;
>> +    src_cr |= SRC_CR_INIT_VAL;
>> +    writel(src_cr, base);
>> +
>>       __nmdk_timer_init(base, irq, pclk, clk);
>>   }
>>   CLOCKSOURCE_OF_DECLARE(nomadik_mtu, "st,nomadik-mtu",
>>
>