diff options
author | Eric Miao <eric.miao@marvell.com> | 2008-12-17 22:10:32 -0500 |
---|---|---|
committer | Eric Miao <eric.miao@marvell.com> | 2008-12-29 04:57:48 -0500 |
commit | 6769717d5d51596618f6b143008d8ace11ec8a69 (patch) | |
tree | 5f4b4b76211132d79e844314725ba4b9e459bc3c /arch/arm/mach-pxa/time.c | |
parent | 9f1442bbf9fd68d8e190c91ab294131dd5c289ee (diff) |
[ARM] rtc-sa1100: don't assume CLOCK_TICK_RATE to be a constant
As Nicolas and Russell pointed out, CLOCK_TICK_RATE is no more
a constant on PXA when multiple processors and platforms are
selected, change TIMER_FREQ in rtc-sa1100.c into a variable.
Since the code to decide the clock tick rate is re-used from
timer.c, introduce a common get_clock_tick_rate() for this.
Signed-off-by: Eric Miao <eric.miao@marvell.com>
Acked-by: Nicolas Pitre <nico@marvell.com>
Diffstat (limited to 'arch/arm/mach-pxa/time.c')
-rw-r--r-- | arch/arm/mach-pxa/time.c | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/arch/arm/mach-pxa/time.c b/arch/arm/mach-pxa/time.c index f8a9a62959e5..986d494a1834 100644 --- a/arch/arm/mach-pxa/time.c +++ b/arch/arm/mach-pxa/time.c | |||
@@ -23,7 +23,6 @@ | |||
23 | #include <asm/mach/irq.h> | 23 | #include <asm/mach/irq.h> |
24 | #include <asm/mach/time.h> | 24 | #include <asm/mach/time.h> |
25 | #include <mach/pxa-regs.h> | 25 | #include <mach/pxa-regs.h> |
26 | #include <asm/mach-types.h> | ||
27 | 26 | ||
28 | /* | 27 | /* |
29 | * This is PXA's sched_clock implementation. This has a resolution | 28 | * This is PXA's sched_clock implementation. This has a resolution |
@@ -150,18 +149,11 @@ static struct irqaction pxa_ost0_irq = { | |||
150 | 149 | ||
151 | static void __init pxa_timer_init(void) | 150 | static void __init pxa_timer_init(void) |
152 | { | 151 | { |
153 | unsigned long clock_tick_rate; | 152 | unsigned long clock_tick_rate = get_clock_tick_rate(); |
154 | 153 | ||
155 | OIER = 0; | 154 | OIER = 0; |
156 | OSSR = OSSR_M0 | OSSR_M1 | OSSR_M2 | OSSR_M3; | 155 | OSSR = OSSR_M0 | OSSR_M1 | OSSR_M2 | OSSR_M3; |
157 | 156 | ||
158 | if (cpu_is_pxa25x()) | ||
159 | clock_tick_rate = 3686400; | ||
160 | else if (machine_is_mainstone()) | ||
161 | clock_tick_rate = 3249600; | ||
162 | else | ||
163 | clock_tick_rate = 3250000; | ||
164 | |||
165 | set_oscr2ns_scale(clock_tick_rate); | 157 | set_oscr2ns_scale(clock_tick_rate); |
166 | 158 | ||
167 | ckevt_pxa_osmr0.mult = | 159 | ckevt_pxa_osmr0.mult = |