sh: sh775x/titan fixes for irq header changes.
The following moves the creation of IPR interupts into setup-7750.c and updates a few other things to make it all work after the "Drop CPU subtype IRQ headers" commit. It boots and runs fine on my titan board. - adds an ipr_idx to the ipr_data and uses a function in the subtype code to calculate the address of the IPR registers - adds a function to enable individual interrupt mode for externals in the subtype code and calls that from the titan board code instead of doing it directly. - I changed the shift in the ipr_data to be the actual # of bits to shift, instead of the numnber / 4 - made it easier to match with the manual. Signed-off-by: Jamie Lenehan <lenehan@twibble.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
committed by
Paul Mundt
parent
fe9687dec0
commit
ea0f8feaa0
@@ -12,7 +12,7 @@
|
||||
#include <linux/kernel_stat.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/io.h>
|
||||
#include <asm/irq.h>
|
||||
#include <linux/irq.h>
|
||||
#include <asm/processor.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/thread_info.h>
|
||||
@@ -112,7 +112,7 @@ asmlinkage int do_IRQ(unsigned long r4, unsigned long r5,
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CPU_HAS_INTEVT
|
||||
irq = (ctrl_inl(INTEVT) >> 5) - 16;
|
||||
irq = evt2irq(ctrl_inl(INTEVT));
|
||||
#else
|
||||
irq = r4;
|
||||
#endif
|
||||
@@ -261,3 +261,24 @@ asmlinkage void do_softirq(void)
|
||||
}
|
||||
EXPORT_SYMBOL(do_softirq);
|
||||
#endif
|
||||
|
||||
void __init init_IRQ(void)
|
||||
{
|
||||
#ifdef CONFIG_CPU_HAS_PINT_IRQ
|
||||
init_IRQ_pint();
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CPU_HAS_INTC2_IRQ
|
||||
init_IRQ_intc2();
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CPU_HAS_IPR_IRQ
|
||||
init_IRQ_ipr();
|
||||
#endif
|
||||
|
||||
/* Perform the machine specific initialisation */
|
||||
if (sh_mv.mv_init_irq)
|
||||
sh_mv.mv_init_irq();
|
||||
|
||||
irq_ctx_init(smp_processor_id());
|
||||
}
|
||||
|
Reference in New Issue
Block a user