Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -917,6 +917,7 @@ config ARCH_NOMADIK
	select CLKDEV_LOOKUP
	select GENERIC_CLOCKEVENTS
	select ARCH_REQUIRE_GPIOLIB
	select MULTI_IRQ_HANDLER
	help
	  Support for the Nomadik platform by ST-Ericsson

+2 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
#include <linux/mtd/onenand.h>
#include <linux/mtd/partitions.h>
#include <linux/io.h>
#include <asm/hardware/vic.h>
#include <asm/sizes.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
@@ -280,6 +281,7 @@ MACHINE_START(NOMADIK, "NHK8815")
	.atag_offset	= 0x100,
	.map_io		= cpu8815_map_io,
	.init_irq	= cpu8815_init_irq,
	.handle_irq	= vic_handle_irq,
	.timer		= &nomadik_timer,
	.init_machine	= nhk8815_platform_init,
MACHINE_END
+0 −30
Original line number Diff line number Diff line
@@ -6,38 +6,8 @@
 * warranty of any kind, whether express or implied.
 */

#include <mach/hardware.h>
#include <mach/irqs.h>

	.macro	disable_fiq
	.endm

	.macro	get_irqnr_preamble, base, tmp
	ldr	\base, =IO_ADDRESS(NOMADIK_IC_BASE)
	.endm

	.macro	arch_ret_to_user, tmp1, tmp2
	.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