Commit 42ab5304 authored by Jamie Iles's avatar Jamie Iles Committed by Marc Zyngier

ARM: nomadik: convert to MULTI_IRQ_HANDLER

Now that there is a generic IRQ handler for multiple VIC devices use it
for nomadik to help building multi platform kernels.

Cc: Alessandro Rubini <rubini@unipv.it>
Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Cc: STEricsson <STEricsson_nomadik_linux@list.st.com>
Tested-by: default avatarThomas Abraham <thomas.abraham@linaro.org>
Signed-off-by: default avatarJamie Iles <jamie@jamieiles.com>
parent 14f127ba
...@@ -917,6 +917,7 @@ config ARCH_NOMADIK ...@@ -917,6 +917,7 @@ config ARCH_NOMADIK
select CLKDEV_LOOKUP select CLKDEV_LOOKUP
select GENERIC_CLOCKEVENTS select GENERIC_CLOCKEVENTS
select ARCH_REQUIRE_GPIOLIB select ARCH_REQUIRE_GPIOLIB
select MULTI_IRQ_HANDLER
help help
Support for the Nomadik platform by ST-Ericsson Support for the Nomadik platform by ST-Ericsson
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include <linux/mtd/onenand.h> #include <linux/mtd/onenand.h>
#include <linux/mtd/partitions.h> #include <linux/mtd/partitions.h>
#include <linux/io.h> #include <linux/io.h>
#include <asm/hardware/vic.h>
#include <asm/sizes.h> #include <asm/sizes.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
...@@ -280,6 +281,7 @@ MACHINE_START(NOMADIK, "NHK8815") ...@@ -280,6 +281,7 @@ MACHINE_START(NOMADIK, "NHK8815")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = cpu8815_map_io, .map_io = cpu8815_map_io,
.init_irq = cpu8815_init_irq, .init_irq = cpu8815_init_irq,
.handle_irq = vic_handle_irq,
.timer = &nomadik_timer, .timer = &nomadik_timer,
.init_machine = nhk8815_platform_init, .init_machine = nhk8815_platform_init,
MACHINE_END MACHINE_END
...@@ -6,38 +6,8 @@ ...@@ -6,38 +6,8 @@
* warranty of any kind, whether express or implied. * warranty of any kind, whether express or implied.
*/ */
#include <mach/hardware.h>
#include <mach/irqs.h>
.macro disable_fiq .macro disable_fiq
.endm .endm
.macro get_irqnr_preamble, base, tmp
ldr \base, =IO_ADDRESS(NOMADIK_IC_BASE)
.endm
.macro arch_ret_to_user, tmp1, tmp2 .macro arch_ret_to_user, tmp1, tmp2
.endm .endm
.macro get_irqnr_and_base, irqnr, irqstat, base, tmp
/* This stanza gets the irq mask from one of two status registers */
mov \irqnr, #0
ldr \irqstat, [\base, #VIC_REG_IRQSR0] @ get masked status
cmp \irqstat, #0
bne 1001f
add \irqnr, \irqnr, #32
ldr \irqstat, [\base, #VIC_REG_IRQSR1] @ get masked status
1001: tst \irqstat, #15
bne 1002f
add \irqnr, \irqnr, #4
movs \irqstat, \irqstat, lsr #4
bne 1001b
1002: tst \irqstat, #1
bne 1003f
add \irqnr, \irqnr, #1
movs \irqstat, \irqstat, lsr #1
bne 1002b
1003: /* EQ will be set if no irqs pending */
.endm
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment