diff options
author | Jamie Lenehan <lenehan@twibble.org> | 2006-10-31 12:35:02 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2006-10-31 12:53:28 +0900 |
commit | bd71ab88deab3358241f22ed6c035c427aacc4e7 (patch) | |
tree | 632aa998acac7feb7df79684f4c382a6d6bf2294 /include/asm-sh | |
parent | 1f6c526c409ed7ecdd02469c46ab4b4a50ebec45 (diff) | |
download | op-kernel-dev-bd71ab88deab3358241f22ed6c035c427aacc4e7.zip op-kernel-dev-bd71ab88deab3358241f22ed6c035c427aacc4e7.tar.gz |
sh: Fix IPR-IRQ's for IRQ-chip change breakage.
The conversion from IPR-IRQ to IRQ-chip resulted in the
ipr data being allocated in a local variable in
make_ipr_irq - breaking anything using IPR interrupts.
This changes all of the callers of make_ipr_irq to
allocate a static structure containing the IPR data which
is then passed to make_ipr_irq. This removes the need for
make_ipr_irq to allocate any additional space for the IPR
information.
Signed-off-by: Jamie Lenehan <lenehan@twibble.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'include/asm-sh')
-rw-r--r-- | include/asm-sh/irq.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/include/asm-sh/irq.h b/include/asm-sh/irq.h index 7596ab8..6cd3e9e 100644 --- a/include/asm-sh/irq.h +++ b/include/asm-sh/irq.h @@ -327,11 +327,17 @@ extern unsigned short *irq_mask_register; */ void init_IRQ_pint(void); +struct ipr_data { + unsigned int irq; + unsigned int addr; /* Address of Interrupt Priority Register */ + int shift; /* Shifts of the 16-bit data */ + int priority; /* The priority */ +}; + /* * Function for "on chip support modules". */ -extern void make_ipr_irq(unsigned int irq, unsigned int addr, - int pos, int priority); +extern void make_ipr_irq(struct ipr_data *table, unsigned int nr_irqs); extern void make_imask_irq(unsigned int irq); #if defined(CONFIG_CPU_SUBTYPE_SH7300) |