clocksource: move PXA timer to clocksource framework
Subsystems (4)
Robert Jarzmik
maintainerPATCH v3 1/4 clocksource: move PXA timer to clocksource framework
Move time.c from arch/arm/mach-pxa/time.c todrivers/clocksource/pxa_timer.c.
--- arch/arm/mach-pxa/Makefile | 2 +- drivers/clocksource/Makefile | 1 + arch/arm/mach-pxa/time.c => drivers/clocksource/pxa_timer.c | 0 3 files changed, 2 insertions(+), 1 deletion(-) rename arch/arm/mach-pxa/time.c => drivers/clocksource/pxa_timer.c (100%)
arch/arm/mach-pxa/Makefile +1 -1
@@ -4,7 +4,7 @@ # Common support (must be linked before board specific support) obj-y += clock.o devices.o generic.o irq.o \ - time.o reset.o + reset.o obj-$(CONFIG_PM) += pm.o sleep.o standby.o # Generic drivers that other drivers may depend upon
drivers/clocksource/Makefile +1 -0
@@ -19,6 +19,7 @@ obj-$(CONFIG_ARCH_BCM2835) += bcm2835_timer.o obj-$(CONFIG_ARCH_MARCO) += timer-marco.o obj-$(CONFIG_ARCH_MOXART) += moxart_timer.o obj-$(CONFIG_ARCH_MXS) += mxs_timer.o +obj-$(CONFIG_ARCH_PXA) += pxa_timer.o obj-$(CONFIG_ARCH_PRIMA2) += timer-prima2.o obj-$(CONFIG_ARCH_U300) += timer-u300.o obj-$(CONFIG_SUN4I_TIMER) += sun4i_timer.o
drivers/clocksource/pxa_timer.c renamed from arch/arm/mach-pxa/time.c +0 -0
Signature · 1 line
2.0.0.rc2
Robert Jarzmik
maintainerPATCH v3 2/4 clocksource: add device-tree support for PXA timer
Add device-tree support to PXA platforms.
The driver still needs to maintain backward non device-tree compatibility as well, which implies :
- a non device-tree init function
- a static registers base address in the driver
---
Since V1: Daniel's review:
- comments for registers
- registers clean-up
- mach includes removed
- panic() removed
--- drivers/clocksource/pxa_timer.c | 137 +++++++++++++++++++++++++++++----------- 1 file changed, 101 insertions(+), 36 deletions(-)
drivers/clocksource/pxa_timer.c +101 -36
@@ -15,14 +15,30 @@#include <linux/kernel.h> #include <linux/init.h> #include <linux/interrupt.h> +#include <linux/clk.h> #include <linux/clockchips.h> +#include <linux/of_address.h> +#include <linux/of_irq.h> #include <linux/sched_clock.h> #include <asm/div64.h> -#include <asm/mach/irq.h> -#include <asm/mach/time.h> -#include <mach/regs-ost.h> -#include <mach/irqs.h> + +#define OSMR0 0x00/* OS Timer 0 Match Register */ +#define OSMR1 0x04/* OS Timer 1 Match Register */ +#define OSMR2 0x08/* OS Timer 2 Match Register */ +#define OSMR3 0x0C/* OS Timer 3 Match Register */ + +#define OSCR 0x10/* OS Timer Counter Register */ +#define OSSR 0x14/* OS Timer Status Register */ +#define OWER 0x18/* OS Timer Watchdog Enable Register */ +#define OIER 0x1C/* OS Timer Interrupt Enable Register */ + +#define OSSR_M3 (1 << 3)/* Match status channel 3 */ +#define OSSR_M2 (1 << 2)/* Match status channel 2 */ +#define OSSR_M1 (1 << 1)/* Match status channel 1 */ +#define OSSR_M0 (1 << 0)/* Match status channel 0 */ + +#define OIER_E0 (1 << 0)/* Interrupt enable channel 0 */ /* * This is PXA's sched_clock implementation. This has a resolution
@@ -33,9 +49,14 @@* calls to sched_clock() which should always be the case in practice. */ +#define timer_readl (reg) readl_relaxed(timer_base + (reg)) +#define timer_writel (val, reg) writel_relaxed((val), timer_base + (reg)) + +static void __iomem *timer_base; + static u64 notrace pxa_read_sched_clock(void) { -return readl_relaxed (OSCR ); +return timer_readl (OSCR ); }
@@ -47,8 +68,8 @@ pxa_ost0_interrupt(int irq, void *dev_id)struct clock_event_device *c = dev_id;/* Disarm the compare/match, signal the event. */ -writel_relaxed (readl_relaxed (OIER ) & ~OIER_E0 ,OIER ); -writel_relaxed (OSSR_M0 ,OSSR ); +timer_writel (timer_readl (OIER ) & ~OIER_E0 ,OIER ); +timer_writel (OSSR_M0 ,OSSR ); c->event_handler (c);return IRQ_HANDLED ;
@@ -59,10 +80,10 @@ pxa_osmr0_set_next_event(unsigned long delta, struct clock_event_device *dev) {unsigned long next, oscr; -writel_relaxed (readl_relaxed (OIER ) |OIER_E0 ,OIER ); - next =readl_relaxed (OSCR ) + delta; -writel_relaxed (next,OSMR0 ); - oscr =readl_relaxed (OSCR ); +timer_writel (timer_readl (OIER ) |OIER_E0 ,OIER ); + next =timer_readl (OSCR ) + delta; +timer_writel (next,OSMR0 ); + oscr =timer_readl (OSCR );return (signed )(next - oscr) <=MIN_OSCR_DELTA ? -ETIME :0 ; }
@@ -72,15 +93,15 @@ pxa_osmr0_set_mode(enum clock_event_mode mode, struct clock_event_device *dev) {switch (mode) {case CLOCK_EVT_MODE_ONESHOT : -writel_relaxed (readl_relaxed (OIER ) & ~OIER_E0 ,OIER ); -writel_relaxed (OSSR_M0 ,OSSR ); +timer_writel (timer_readl (OIER ) & ~OIER_E0 ,OIER ); +timer_writel (OSSR_M0 ,OSSR );break ;case CLOCK_EVT_MODE_UNUSED :case CLOCK_EVT_MODE_SHUTDOWN :/* initializing, released, or preparing for suspend */ -writel_relaxed (readl_relaxed (OIER ) & ~OIER_E0 ,OIER ); -writel_relaxed (OSSR_M0 ,OSSR ); +timer_writel (timer_readl (OIER ) & ~OIER_E0 ,OIER ); +timer_writel (OSSR_M0 ,OSSR );break ;case CLOCK_EVT_MODE_RESUME :
@@ -94,12 +115,12 @@ static unsigned long osmr[4], oier, oscr;static void pxa_timer_suspend (struct clock_event_device *cedev) { - osmr[0 ] =readl_relaxed (OSMR0 ); - osmr[1 ] =readl_relaxed (OSMR1 ); - osmr[2 ] =readl_relaxed (OSMR2 ); - osmr[3 ] =readl_relaxed (OSMR3 ); - oier =readl_relaxed (OIER ); - oscr =readl_relaxed (OSCR ); + osmr[0 ] =timer_readl (OSMR0 ); + osmr[1 ] =timer_readl (OSMR1 ); + osmr[2 ] =timer_readl (OSMR2 ); + osmr[3 ] =timer_readl (OSMR3 ); + oier =timer_readl (OIER ); + oscr =timer_readl (OSCR ); }static void pxa_timer_resume (struct clock_event_device *cedev)
@@ -113,12 +134,12 @@ static void pxa_timer_resume(struct clock_event_device *cedev)if (osmr[0 ] - oscr <MIN_OSCR_DELTA ) osmr[0 ] +=MIN_OSCR_DELTA ; -writel_relaxed (osmr[0 ],OSMR0 ); -writel_relaxed (osmr[1 ],OSMR1 ); -writel_relaxed (osmr[2 ],OSMR2 ); -writel_relaxed (osmr[3 ],OSMR3 ); -writel_relaxed (oier,OIER ); - writel_relaxed(oscr, OSCR); +timer_writel (osmr[0 ],OSMR0 ); +timer_writel (osmr[1 ],OSMR1 ); +timer_writel (osmr[2 ],OSMR2 ); +timer_writel (osmr[3 ],OSMR3 ); +timer_writel (oier,OIER ); + timer_writel(oscr, OSCR); }#else #define pxa_timer_suspend NULL
@@ -142,21 +163,65 @@ static struct irqaction pxa_ost0_irq = { .dev_id = &ckevt_pxa_osmr0, }; -void __init pxa_timer_init (void ) +static void pxa_timer_common_init (int irq,unsigned long clock_tick_rate) { -unsigned long clock_tick_rate =get_clock_tick_rate (); - -writel_relaxed (0 ,OIER ); -writel_relaxed (OSSR_M0 |OSSR_M1 |OSSR_M2 |OSSR_M3 ,OSSR ); +timer_writel (0 ,OIER ); +timer_writel (OSSR_M0 |OSSR_M1 |OSSR_M2 |OSSR_M3 ,OSSR );sched_clock_register (pxa_read_sched_clock,32 , clock_tick_rate); ckevt_pxa_osmr0.cpumask =cpumask_of (0 ); -setup_irq (IRQ_OST0 , &pxa_ost0_irq); +setup_irq (irq, &pxa_ost0_irq); -clocksource_mmio_init (OSCR ,"oscr0" , clock_tick_rate,200 ,32 , - clocksource_mmio_readl_up); +clocksource_mmio_init (timer_base +OSCR ,"oscr0" , clock_tick_rate,200 , +32 , clocksource_mmio_readl_up);clockevents_config_and_register (&ckevt_pxa_osmr0, clock_tick_rate, -MIN_OSCR_DELTA *2 ,0x7fffffff ); +MIN_OSCR_DELTA *2 ,0x7fffffff ); +} + +static void __init pxa_timer_dt_init (struct device_node *np) +{ +struct clk *clk; +int irq; + +/* timer registers are shared with watchdog timer */ + timer_base =of_iomap (np,0 ); +if (!timer_base) +panic ("%s: unable to map resource\n" , np->name); + + clk =of_clk_get (np,0 ); +if (IS_ERR (clk)) { +pr_crit ("%s: unable to get clk\n" , np->name); +return ; + } +clk_prepare_enable (clk); + +/* we are only interested in OS-timer0 irq */ + irq =irq_of_parse_and_map (np,0 ); +if (irq <=0 ) { +pr_crit ("%s: unable to parse OS-timer0 irq\n" , np->name); +return ; + } + +pxa_timer_common_init (irq,clk_get_rate (clk)); +} +CLOCKSOURCE_OF_DECLARE (pxa_timer,"marvell,pxa-timer" , pxa_timer_dt_init); + +/* +* Legacy timer init for non device-tree boards. +*/ +void __init pxa_timer_nodt_init (int irq,void __iomem *base, +unsigned long clock_tick_rate) +{ +struct clk *clk; + + timer_base = base; + clk =clk_get (NULL ,"OSTIMER0" ); +if (clk && !IS_ERR (clk)) +clk_prepare_enable (clk); +else +pr_crit ("%s: unable to get clk\n" , __func__); + +pxa_timer_common_init (irq, clock_tick_rate); }
Signature · 1 line
2.0.0.rc2
Robert Jarzmik
maintainerPATCH v3 3/4 arm: pxa: add CLKSRC_OF dependency
In reply to Robert JarzmikSelect CLKSRC_OF for PXA architectures.
--- arch/arm/Kconfig | 1 + 1 file changed, 1 insertion(+)
arch/arm/Kconfig +1 -0
@@ -644,6 +644,7 @@ config ARCH_PXA select AUTO_ZRELADDR select CLKDEV_LOOKUP select CLKSRC_MMIO + select CLKSRC_OF select GENERIC_CLOCKEVENTS select GPIO_PXA select HAVE_IDE
Signature · 1 line
2.0.0.rc2
Robert Jarzmik
maintainerPATCH v3 4/4 arm: pxa: add non device-tree timer link to clocksource
In reply to Robert JarzmikAs clocksource pxa_timer was moved to clocksource framework, the pxa_timer initialization needs to be a bit amended, to pass the necessary informations to clocksource, ie :
- the timer interrupt (mach specific)
- the timer registers base (ditto)
- the timer clockrate
---
Since V2: Arnd's comment : moved extern declaration into .h file
--- arch/arm/mach-pxa/generic.c | 11 +++++++++++ include/clocksource/pxa.h | 18 ++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 include/clocksource/pxa.h
arch/arm/mach-pxa/generic.c +11 -0
@@ -25,11 +25,13 @@#include <asm/mach/map.h> #include <asm/mach-types.h> +#include <mach/irqs.h> #include <mach/reset.h> #include <mach/smemc.h> #include <mach/pxa3xx-regs.h> #include "generic.h" +#include <clocksource/pxa.h> void clear_reset_status (unsigned int mask) {
@@ -57,6 +59,15 @@ unsigned long get_clock_tick_rate(void)EXPORT_SYMBOL (get_clock_tick_rate);/* +* For non device-tree builds, keep legacy timer init +*/ +void pxa_timer_init (void ) +{ +pxa_timer_nodt_init (IRQ_OST0 ,io_p2v (0x40a00000 ), +get_clock_tick_rate ()); +} + +/* * Get the clock frequency as reflected by CCCR and the turbo flag. * We assume these values have been applied via a fcs. * If info is not 0 we also display the current settings.
include/clocksource/pxa.h new file +18 -0
@@ -0,0 +1,18 @@ +/* +* PXA clocksource, clockevents, and OST interrupt handlers. +* +* Copyright (C) 2014 Robert Jarzmik +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; version 2 of the License. +* +*/ + +#ifndef _CLOCKSOURCE_PXA_H +#define _CLOCKSOURCE_PXA_H + +extern void pxa_timer_nodt_init (int irq,void __iomem *base, +unsigned long clock_tick_rate); + +#endif
Signature · 1 line
2.0.0.rc2
Re: [PATCH v3 4/4] arm: pxa: add non device-tree timer link to clocksource
Quoted 7 lines · Robert Jarzmik
As clocksource
pxa_timerwas moved to clocksource framework, thepxa_timerinitialization needs to be a bit amended, to pass the necessary informations to clocksource, ie :
- the timer interrupt (mach specific)
- the timer registers base (ditto)
- the timer clockrate
Quoted 5 lines
Signed-off-by Robert Jarzmik <[email protected]>---
Since V2: Arnd's comment : moved extern declaration into .h file
---
Shall I take the patches 4-5 also ?
Arnd ?
Thanks
-- Daniel
Quoted 64 lines
arch/arm/mach-pxa/generic.c | 11 +++++++++++ include/clocksource/pxa.h | 18 ++++++++++++++++++ 2 files changed, 29 insertions(+)create mode 100644
include/clocksource/pxa.harch/arm/mach-pxa/generic.c +11
-0@@ -25,11 +25,13 @@#include <asm/mach/map.h> #include <asm/mach-types.h> +#include <mach/irqs.h> #include <mach/reset.h> #include <mach/smemc.h> #include <mach/pxa3xx-regs.h> #include "generic.h" +#include <clocksource/pxa.h> void clear_reset_status (unsigned int mask) {@@ -57,6 +59,15 @@ unsigned long get_clock_tick_rate(void)EXPORT_SYMBOL (get_clock_tick_rate);/* +* For non device-tree builds, keep legacy timer init +*/ +void pxa_timer_init (void ) +{ +pxa_timer_nodt_init (IRQ_OST0 ,io_p2v (0x40a00000 ), +get_clock_tick_rate ()); +} + +/* * Get the clock frequency as reflected by CCCR and the turbo flag. * We assume these values have been applied via a fcs. * If info is not 0 we also display the current settings. include/clocksource/pxa.h new file +18
-0@@ -0,0 +1,18 @@ +/* +* PXA clocksource, clockevents, and OST interrupt handlers. +* +* Copyright (C) 2014 Robert Jarzmik +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; version 2 of the License. +* +*/ + +#ifndef _CLOCKSOURCE_PXA_H +#define _CLOCKSOURCE_PXA_H + +extern void pxa_timer_nodt_init (int irq,void __iomem *base, +unsigned long clock_tick_rate); + +#endif
Signature · 5 lines
<http://www.linaro.org/> Linaro.org ? Open source software for ARM SoCs Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog
Robert Jarzmik
maintainerRe: [PATCH v3 4/4] arm: pxa: add non device-tree timer link to clocksource
Quoted 8 lines · Daniel Lezcano
Quoted 7 lines · Robert Jarzmik
As clocksource
pxa_timerwas moved to clocksource framework, thepxa_timerinitialization needs to be a bit amended, to pass the necessary informations to clocksource, ie :
- the timer interrupt (mach specific)
- the timer registers base (ditto)
- the timer clockrate
Quoted 7 lines
Quoted 5 lines
Signed-off-by Robert Jarzmik <[email protected]>---
Since V2: Arnd's comment : moved extern declaration into .h file
---Shall I take the patches 4-5 also ?
Mmm you mean patch 4 I think.
Then I'd like you too, because it's linked in the serie, and without it the former non-DT platforms break, hence I'd like all the serie to go through 1 tree.
Yet we'd need Haojian's ack here. Haojian, would you give your blessing on the serie and agree that Daniel carries all the patches including patch 4/4 ?
Cheers.
--
Robert
PATCH 1/1 ARM: pxa: fix section mismatch warning for pxa_timer_nodt_init
commit a38b1f60b5245a3 ("ARM: pxa: Add non device-tree timer link to clocksource") introduced a harmless section mismatch warning for all pxa platforms, by introducing a new pxa_timer_init() function that is not marked __init but that calls pxa_timer_nodt_init(), which is. The function is only called at init time, so it is safe to also annotate it this way.
---
Daniel, please apply on top of Robert's patch series.
arch/arm/mach-pxa/generic.c +1 -1
@@ -61,7 +61,7 @@ EXPORT_SYMBOL(get_clock_tick_rate);/* * For non device-tree builds, keep legacy timer init */ -void pxa_timer_init (void ) +void __init pxa_timer_init (void ) {pxa_timer_nodt_init (IRQ_OST0 ,io_p2v (0x40a00000 ),get_clock_tick_rate ());
Re: [PATCH ] ARM: pxa: fix section mismatch warning for pxa_timer_nodt_init
Quoted 8 lines · Arnd Bergmann
commit
a38b1f60b5245a3("ARM: pxa: Add non device-tree timer link to clocksource") introduced a harmless section mismatch warning for all pxa platforms, by introducing a newpxa_timer_init()function that is not marked__initbut that callspxa_timer_nodt_init(), which is. The function is only called at init time, so it is safe to also annotate it this way.Signed-off-by Arnd Bergmann <[email protected]>
Indeed.
Cheers.
--
Robert
Re: [PATCH ] ARM: pxa: fix section mismatch warning for pxa_timer_nodt_init
In reply to Arnd BergmannQuoted 10 lines · Arnd Bergmann
commit
a38b1f60b5245a3("ARM: pxa: Add non device-tree timer link to clocksource") introduced a harmless section mismatch warning for all pxa platforms, by introducing a newpxa_timer_init()function that is not marked__initbut that callspxa_timer_nodt_init(), which is. The function is only called at init time, so it is safe to also annotate it this way.Signed-off-by Arnd Bergmann <[email protected]>---
Daniel, please apply on top of Robert's patch series.
Applied thanks!
-- Daniel
Quoted 15 lines
arch/arm/mach-pxa/generic.c +1
-1@@ -61,7 +61,7 @@ EXPORT_SYMBOL(get_clock_tick_rate);/* * For non device-tree builds, keep legacy timer init */ -void pxa_timer_init (void ) +void __init pxa_timer_init (void ) {pxa_timer_nodt_init (IRQ_OST0 ,io_p2v (0x40a00000 ),get_clock_tick_rate ());
Signature · 5 lines
<http://www.linaro.org/> Linaro.org ? Open source software for ARM SoCs Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog
Re: [PATCH ] ARM: pxa: fix section mismatch warning for pxa_timer_nodt_init
In reply to Arnd BergmannQuoted 9 lines · On Saturday 26 July 2014 20:50:36 Arnd Bergmann wrote:
commit
a38b1f60b5245a3("ARM: pxa: Add non device-tree timer link to clocksource") introduced a harmless section mismatch warning for all pxa platforms, by introducing a newpxa_timer_init()function that is not marked__initbut that callspxa_timer_nodt_init(), which is. The function is only called at init time, so it is safe to also annotate it this way.Signed-off-by Arnd Bergmann <[email protected]>
Apparently this is not merged yet, should we take it through arm-soc?
arch/arm/mach-pxa/generic.c +1 -1
@@ -61,7 +61,7 @@ EXPORT_SYMBOL(get_clock_tick_rate);/* * For non device-tree builds, keep legacy timer init */ -void pxa_timer_init (void ) +void __init pxa_timer_init (void ) {pxa_timer_nodt_init (IRQ_OST0 ,io_p2v (0x40a00000 ),get_clock_tick_rate ());
[email protected]
maintainerRe : Re: [PATCH ] ARM: pxa: fix section mismatch warning for pxa_timer_nodt_init
Yes please Arnd, I'm still out for 1.5 week, so it would be great if you take that through your tree with my ack. Thanks.
Robert
PS: I know, top-posting is madness, but I'm really limited by technology right now.
----- Mail d'origine -----
De: Arnd Bergmann <[email protected]>
?: Robert Jarzmik <[email protected]>
Cc: Haojian Zhuang <[email protected]>, Daniel Lezcano <[email protected]>, linux-arm-kernel at lists.infradead.org, linux-kernel at vger.kernel.org, devicetree at vger.kernel.org, Thomas Gleixner <[email protected]>, arm at kernel.org Envoy?: Sun, 07 Sep 2014 23:06:05 +0200 (CEST)
Objet: Re: [PATCH ] ARM: pxa: fix section mismatch warning for pxa_timer_nodt_init
Quoted 9 lines · On Saturday 26 July 2014 20:50:36 Arnd Bergmann wrote:
commit
a38b1f60b5245a3("ARM: pxa: Add non device-tree timer link to clocksource") introduced a harmless section mismatch warning for all pxa platforms, by introducing a newpxa_timer_init()function that is not marked__initbut that callspxa_timer_nodt_init(), which is. The function is only called at init time, so it is safe to also annotate it this way.Signed-off-by Arnd Bergmann <[email protected]>
Apparently this is not merged yet, should we take it through arm-soc?
arch/arm/mach-pxa/generic.c +1 -1
@@ -61,7 +61,7 @@ EXPORT_SYMBOL(get_clock_tick_rate);/* * For non device-tree builds, keep legacy timer init */ -void pxa_timer_init (void ) +void __init pxa_timer_init (void ) {pxa_timer_nodt_init (IRQ_OST0 ,io_p2v (0x40a00000 ),get_clock_tick_rate ());
Re: [PATCH v3 4/4] arm: pxa: add non device-tree timer link to clocksource
In reply to Robert JarzmikQuoted 16 lines · Robert Jarzmik
Quoted 14 lines · Daniel Lezcano
Quoted 12 lines · Robert Jarzmik
As clocksource
pxa_timerwas moved to clocksource framework, thepxa_timerinitialization needs to be a bit amended, to pass the necessary informations to clocksource, ie :
- the timer interrupt (mach specific)
- the timer registers base (ditto)
- the timer clockrateSigned-off-by Robert Jarzmik <[email protected]>---
Since V2: Arnd's comment : moved extern declaration into .h file
---
Quoted 8 lines
Quoted 1 line
Shall I take the patches 4-5 also ?
Mmm you mean patch 4 I think.
Then I'd like you too, because it's linked in the serie, and without it the former non-DT platforms break, hence I'd like all the serie to go through 1 tree.Yet we'd need Haojian's ack here. Haojian, would you give your blessing on the serie and agree that Daniel carries all the patches including patch 4/4 ?
Hi,
May be I missed it but I don't see the Haojian's ack.
Thanks
-- Daniel
Signature · 5 lines
<http://www.linaro.org/> Linaro.org ? Open source software for ARM SoCs Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog
Robert Jarzmik
maintainerRe: [PATCH v3 4/4] arm: pxa: add non device-tree timer link to clocksource
Quoted 18 lines · Daniel Lezcano
Quoted 10 lines · Robert Jarzmik
Quoted 8 lines · Daniel Lezcano
Quoted 7 lines · Robert Jarzmik
As clocksource
pxa_timerwas moved to clocksource framework, thepxa_timerinitialization needs to be a bit amended, to pass the necessary informations to clocksource, ie :
- the timer interrupt (mach specific)
- the timer registers base (ditto)
- the timer clockrateQuoted 6 lines
Quoted 6 lines
Quoted 5 lines
Signed-off-by Robert Jarzmik <[email protected]>---
Since V2: Arnd's comment : moved extern declaration into .h file
---
Quoted 6 lines
Hi,
May be I missed it but I don't see the Haojian's ack.
Thanks
-- Daniel
You're right, I scanned through my mail and didn't find the ack. Haojian, would you review this one please ?
It's here :
http://lists.infradead.org/pipermail/linux-arm-kernel/2014-July/272311.html
Cheers.
Signature · 1 line
Robert