aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-arm
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2005-11-08 14:08:05 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2005-11-08 14:08:05 -0500
commit37ee16ae93a3e4ae7dd51beb81d249f5f12a55c2 (patch)
treea6cf9773ddb5eae9f173c6a9c9d6120faa5688a4 /include/asm-arm
parent3b6353fae0d7ba772d7eb2651727332c9e9c74ac (diff)
[ARM SMP] Add core ARM support for local timers
Add infrastructure for supporting per-cpu local timers to update the profiling information and update system time accounting. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'include/asm-arm')
-rw-r--r--include/asm-arm/hardirq.h1
-rw-r--r--include/asm-arm/smp.h38
2 files changed, 39 insertions, 0 deletions
diff --git a/include/asm-arm/hardirq.h b/include/asm-arm/hardirq.h
index e5ccb6b8ff83..1cbb173bf5b1 100644
--- a/include/asm-arm/hardirq.h
+++ b/include/asm-arm/hardirq.h
@@ -8,6 +8,7 @@
8 8
9typedef struct { 9typedef struct {
10 unsigned int __softirq_pending; 10 unsigned int __softirq_pending;
11 unsigned int local_timer_irqs;
11} ____cacheline_aligned irq_cpustat_t; 12} ____cacheline_aligned irq_cpustat_t;
12 13
13#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */ 14#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
diff --git a/include/asm-arm/smp.h b/include/asm-arm/smp.h
index 52e7c8d830b2..5a72e50ca9fc 100644
--- a/include/asm-arm/smp.h
+++ b/include/asm-arm/smp.h
@@ -92,4 +92,42 @@ extern void platform_cpu_die(unsigned int cpu);
92extern int platform_cpu_kill(unsigned int cpu); 92extern int platform_cpu_kill(unsigned int cpu);
93extern void platform_cpu_enable(unsigned int cpu); 93extern void platform_cpu_enable(unsigned int cpu);
94 94
95#ifdef CONFIG_LOCAL_TIMERS
96/*
97 * Setup a local timer interrupt for a CPU.
98 */
99extern void local_timer_setup(unsigned int cpu);
100
101/*
102 * Stop a local timer interrupt.
103 */
104extern void local_timer_stop(unsigned int cpu);
105
106/*
107 * Platform provides this to acknowledge a local timer IRQ
108 */
109extern int local_timer_ack(void);
110
111#else
112
113static inline void local_timer_setup(unsigned int cpu)
114{
115}
116
117static inline void local_timer_stop(unsigned int cpu)
118{
119}
120
121#endif
122
123/*
124 * show local interrupt info
125 */
126extern void show_local_irqs(struct seq_file *);
127
128/*
129 * Called from assembly, this is the local timer IRQ handler
130 */
131asmlinkage void do_local_timer(struct pt_regs *);
132
95#endif /* ifndef __ASM_ARM_SMP_H */ 133#endif /* ifndef __ASM_ARM_SMP_H */