diff options
author | Olof Johansson <olof@lixom.net> | 2007-01-29 00:33:18 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-02-06 22:03:19 -0500 |
commit | 7df2457db83bc922fcc8b462526b77f1ffe8c84b (patch) | |
tree | 7029d9e27b858e435c2fc4ce9a6d83a2b028e290 /include/asm-powerpc | |
parent | 6529c13dfe413e437ad1ed0e97783dcf69137114 (diff) |
[POWERPC] MPIC: support more than 256 sources
Allow more than the default 256 MPIC sources. Allocates a new flag
(MPIC_LARGE_VECTORS) to be used by platform code when instantiating
the mpic.
I picked 11 bits worth right now since it would cover the number of
sources on any hardware I have seen. It can always be increased later
if needed.
Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'include/asm-powerpc')
-rw-r--r-- | include/asm-powerpc/mpic.h | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/include/asm-powerpc/mpic.h b/include/asm-powerpc/mpic.h index b71e7b32a555..cb204a71e912 100644 --- a/include/asm-powerpc/mpic.h +++ b/include/asm-powerpc/mpic.h | |||
@@ -103,21 +103,6 @@ | |||
103 | #define MPIC_MAX_ISU 32 | 103 | #define MPIC_MAX_ISU 32 |
104 | 104 | ||
105 | /* | 105 | /* |
106 | * Special vector numbers (internal use only) | ||
107 | */ | ||
108 | #define MPIC_VEC_SPURRIOUS 255 | ||
109 | #define MPIC_VEC_IPI_3 254 | ||
110 | #define MPIC_VEC_IPI_2 253 | ||
111 | #define MPIC_VEC_IPI_1 252 | ||
112 | #define MPIC_VEC_IPI_0 251 | ||
113 | |||
114 | /* unused */ | ||
115 | #define MPIC_VEC_TIMER_3 250 | ||
116 | #define MPIC_VEC_TIMER_2 249 | ||
117 | #define MPIC_VEC_TIMER_1 248 | ||
118 | #define MPIC_VEC_TIMER_0 247 | ||
119 | |||
120 | /* | ||
121 | * Tsi108 implementation of MPIC has many differences from the original one | 106 | * Tsi108 implementation of MPIC has many differences from the original one |
122 | */ | 107 | */ |
123 | 108 | ||
@@ -276,6 +261,13 @@ struct mpic | |||
276 | unsigned char *senses; | 261 | unsigned char *senses; |
277 | unsigned int senses_count; | 262 | unsigned int senses_count; |
278 | 263 | ||
264 | /* vector numbers used for internal sources (ipi/timers) */ | ||
265 | unsigned int ipi_vecs[4]; | ||
266 | unsigned int timer_vecs[4]; | ||
267 | |||
268 | /* Spurious vector to program into unused sources */ | ||
269 | unsigned int spurious_vec; | ||
270 | |||
279 | #ifdef CONFIG_MPIC_BROKEN_U3 | 271 | #ifdef CONFIG_MPIC_BROKEN_U3 |
280 | /* The fixup table */ | 272 | /* The fixup table */ |
281 | struct mpic_irq_fixup *fixups; | 273 | struct mpic_irq_fixup *fixups; |
@@ -332,6 +324,8 @@ struct mpic | |||
332 | #define MPIC_NO_PTHROU_DIS 0x00000040 | 324 | #define MPIC_NO_PTHROU_DIS 0x00000040 |
333 | /* DCR based MPIC */ | 325 | /* DCR based MPIC */ |
334 | #define MPIC_USES_DCR 0x00000080 | 326 | #define MPIC_USES_DCR 0x00000080 |
327 | /* MPIC has 11-bit vector fields (or larger) */ | ||
328 | #define MPIC_LARGE_VECTORS 0x00000100 | ||
335 | 329 | ||
336 | /* MPIC HW modification ID */ | 330 | /* MPIC HW modification ID */ |
337 | #define MPIC_REGSET_MASK 0xf0000000 | 331 | #define MPIC_REGSET_MASK 0xf0000000 |