summaryrefslogtreecommitdiffstats
path: root/arch/sh/boards/renesas/rts7751r2d/irq.c
diff options
context:
space:
mode:
authorMagnus Damm <damm@igel.co.jp>2007-08-03 14:27:20 +0900
committerPaul Mundt <lethal@linux-sh.org>2007-09-21 11:57:48 +0900
commit48180cab3adf4cb290c28b70e44e958b7fb8a5b0 (patch)
tree2cf6000e98f680a8ed9631626d2ce7e9525b55d2 /arch/sh/boards/renesas/rts7751r2d/irq.c
parent51da64264b8d59a1e5fceebd94a975690b70b086 (diff)
downloadkernel-crypto-48180cab3adf4cb290c28b70e44e958b7fb8a5b0.tar.gz
kernel-crypto-48180cab3adf4cb290c28b70e44e958b7fb8a5b0.tar.xz
kernel-crypto-48180cab3adf4cb290c28b70e44e958b7fb8a5b0.zip
sh: intc - convert voyagergx code
This patch converts the sh-specific voyagergx interrupt code to make use of intc. A lot of "interesting" old cruft gets replaced with intc tables and some simple demux code. - All interrupt sources in the sm501 data sheet are now in the header. - The number and order of IRQ values are disconnected from register bits. - Interrupt sources now start from IRQ 200. - set_irq_chained_handler() is now used to hook up the demux function. In the future it would probably make sense to move the interrupt demuxer into into the mfd driver, but this is probably a nice step in the right direction until that happens. Tested on a R2D-1 board using the serial port hooked up to the sm501. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/boards/renesas/rts7751r2d/irq.c')
-rw-r--r--arch/sh/boards/renesas/rts7751r2d/irq.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/arch/sh/boards/renesas/rts7751r2d/irq.c b/arch/sh/boards/renesas/rts7751r2d/irq.c
index 0bae9041ace..b97c25de3a4 100644
--- a/arch/sh/boards/renesas/rts7751r2d/irq.c
+++ b/arch/sh/boards/renesas/rts7751r2d/irq.c
@@ -13,6 +13,7 @@
#include <linux/irq.h>
#include <linux/interrupt.h>
#include <linux/io.h>
+#include <asm/voyagergx.h>
#include <asm/rts7751r2d.h>
#if defined(CONFIG_RTS7751R2D_REV11)
@@ -21,9 +22,6 @@ static int mask_pos[] = {11, 9, 8, 12, 10, 6, 5, 4, 7, 14, 13, 0, 0, 0, 0};
static int mask_pos[] = {6, 11, 9, 8, 12, 10, 5, 4, 7, 14, 13, 0, 0, 0, 0};
#endif
-extern int voyagergx_irq_demux(int irq);
-extern void setup_voyagergx_irq(void);
-
static void enable_rts7751r2d_irq(unsigned int irq)
{
/* Set priority in IPR back to original value */
@@ -39,7 +37,7 @@ static void disable_rts7751r2d_irq(unsigned int irq)
int rts7751r2d_irq_demux(int irq)
{
- return voyagergx_irq_demux(irq);
+ return irq;
}
static struct irq_chip rts7751r2d_irq_chip __read_mostly = {