aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-sh
diff options
context:
space:
mode:
authorMagnus Damm <damm@igel.co.jp>2007-09-21 05:16:42 -0400
committerPaul Mundt <lethal@linux-sh.org>2007-09-21 05:16:42 -0400
commitf18d533e3cd476aedf41fe1e6e9dc3e0a2446bba (patch)
tree64e54cb0572f62f8d171ce7f779b50226bfe931f /include/asm-sh
parent9964fa8bf952c5c4df9676223fab4cd886d18200 (diff)
sh: intc - initial SMP support.
This implements initial support for the SMP INTC (particularly INTC2) controllers. These are largely implemented as conventional blocks, with register sets grouped together at fixed strides relative to the CPU id. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'include/asm-sh')
-rw-r--r--include/asm-sh/hw_irq.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/asm-sh/hw_irq.h b/include/asm-sh/hw_irq.h
index 96d971040503..cb0b6c9f7020 100644
--- a/include/asm-sh/hw_irq.h
+++ b/include/asm-sh/hw_irq.h
@@ -50,11 +50,17 @@ struct intc_group {
50struct intc_mask_reg { 50struct intc_mask_reg {
51 unsigned long set_reg, clr_reg, reg_width; 51 unsigned long set_reg, clr_reg, reg_width;
52 intc_enum enum_ids[32]; 52 intc_enum enum_ids[32];
53#ifdef CONFIG_SMP
54 unsigned long smp;
55#endif
53}; 56};
54 57
55struct intc_prio_reg { 58struct intc_prio_reg {
56 unsigned long set_reg, clr_reg, reg_width, field_width; 59 unsigned long set_reg, clr_reg, reg_width, field_width;
57 intc_enum enum_ids[16]; 60 intc_enum enum_ids[16];
61#ifdef CONFIG_SMP
62 unsigned long smp;
63#endif
58}; 64};
59 65
60struct intc_sense_reg { 66struct intc_sense_reg {
@@ -62,6 +68,12 @@ struct intc_sense_reg {
62 intc_enum enum_ids[16]; 68 intc_enum enum_ids[16];
63}; 69};
64 70
71#ifdef CONFIG_SMP
72#define INTC_SMP(stride, nr) .smp = (stride) | ((nr) << 8)
73#else
74#define INTC_SMP(stride, nr)
75#endif
76
65struct intc_desc { 77struct intc_desc {
66 struct intc_vect *vectors; 78 struct intc_vect *vectors;
67 unsigned int nr_vectors; 79 unsigned int nr_vectors;