Commit b7378eaf authored by Jamie Iles's avatar Jamie Iles Committed by Marc Zyngier

ARM: u300: convert to MULTI_IRQ_HANDLER

Now that there is a generic IRQ handler for multiple VIC devices use it
for u300 to help building multi platform kernels.
Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarJamie Iles <jamie@jamieiles.com>
parent 66266f4a
...@@ -896,6 +896,7 @@ config ARCH_U300 ...@@ -896,6 +896,7 @@ config ARCH_U300
select GENERIC_GPIO select GENERIC_GPIO
select ARCH_REQUIRE_GPIOLIB select ARCH_REQUIRE_GPIOLIB
select NEED_MACH_MEMORY_H select NEED_MACH_MEMORY_H
select MULTI_IRQ_HANDLER
help help
Support for ST-Ericsson U300 series mobile platforms. Support for ST-Ericsson U300 series mobile platforms.
......
...@@ -8,33 +8,9 @@ ...@@ -8,33 +8,9 @@
* Low-level IRQ helper macros for ST-Ericsson U300 * Low-level IRQ helper macros for ST-Ericsson U300
* Author: Linus Walleij <linus.walleij@stericsson.com> * Author: Linus Walleij <linus.walleij@stericsson.com>
*/ */
#include <mach/hardware.h>
#include <asm/hardware/vic.h>
.macro disable_fiq .macro disable_fiq
.endm .endm
.macro get_irqnr_preamble, base, tmp
.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
ldr \base, = U300_AHB_PER_VIRT_BASE-U300_AHB_PER_PHYS_BASE+U300_INTCON0_BASE
ldr \irqstat, [\base, #VIC_IRQ_STATUS] @ get masked status
mov \irqnr, #0
teq \irqstat, #0
bne 1002f
1001: ldr \base, = U300_AHB_PER_VIRT_BASE-U300_AHB_PER_PHYS_BASE+U300_INTCON1_BASE
ldr \irqstat, [\base, #VIC_IRQ_STATUS] @ get masked status
mov \irqnr, #32
teq \irqstat, #0
beq 1003f
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
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include <linux/io.h> #include <linux/io.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/platform.h> #include <mach/platform.h>
#include <asm/hardware/vic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/memory.h> #include <asm/memory.h>
...@@ -49,6 +50,7 @@ MACHINE_START(U300, MACH_U300_STRING) ...@@ -49,6 +50,7 @@ MACHINE_START(U300, MACH_U300_STRING)
.atag_offset = BOOT_PARAMS_OFFSET, .atag_offset = BOOT_PARAMS_OFFSET,
.map_io = u300_map_io, .map_io = u300_map_io,
.init_irq = u300_init_irq, .init_irq = u300_init_irq,
.handle_irq = vic_handle_irq,
.timer = &u300_timer, .timer = &u300_timer,
.init_machine = u300_init_machine, .init_machine = u300_init_machine,
MACHINE_END MACHINE_END
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