summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2005-11-08 23:43:44 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2005-11-08 23:43:44 +0100
commit72274c9e24d58d09489d37e732545e52395da270 (patch)
tree9c47a583b38a4996bda2dbe182547f8409bb65e8 /include
parent[ARM] 3135/1: harden SA11x0 and PXA2xx timer init code (diff)
parent[ARM SMP] Add core ARM support for local timers (diff)
downloadlinux-72274c9e24d58d09489d37e732545e52395da270.tar.xz
linux-72274c9e24d58d09489d37e732545e52395da270.zip
Merge with ARM SMP tree
Diffstat (limited to 'include')
-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 @@
typedef struct {
unsigned int __softirq_pending;
+ unsigned int local_timer_irqs;
} ____cacheline_aligned irq_cpustat_t;
#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);
extern int platform_cpu_kill(unsigned int cpu);
extern void platform_cpu_enable(unsigned int cpu);
+#ifdef CONFIG_LOCAL_TIMERS
+/*
+ * Setup a local timer interrupt for a CPU.
+ */
+extern void local_timer_setup(unsigned int cpu);
+
+/*
+ * Stop a local timer interrupt.
+ */
+extern void local_timer_stop(unsigned int cpu);
+
+/*
+ * Platform provides this to acknowledge a local timer IRQ
+ */
+extern int local_timer_ack(void);
+
+#else
+
+static inline void local_timer_setup(unsigned int cpu)
+{
+}
+
+static inline void local_timer_stop(unsigned int cpu)
+{
+}
+
+#endif
+
+/*
+ * show local interrupt info
+ */
+extern void show_local_irqs(struct seq_file *);
+
+/*
+ * Called from assembly, this is the local timer IRQ handler
+ */
+asmlinkage void do_local_timer(struct pt_regs *);
+
#endif /* ifndef __ASM_ARM_SMP_H */