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

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

ARM: samsung: convert to MULTI_IRQ_HANDLER



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

Cc: Kukjin Kim <kgene.kim@samsung.com>
Tested-by: default avatarThomas Abraham <thomas.abraham@linaro.org>
Signed-off-by: default avatarJamie Iles <jamie@jamieiles.com>
parent c8be7acd
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -803,6 +803,7 @@ config ARCH_S5P64X0
	select HAVE_SCHED_CLOCK
	select HAVE_S3C2410_I2C if I2C
	select HAVE_S3C_RTC if RTC_CLASS
	select MULTI_IRQ_HANDLER
	help
	  Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440,
	  SMDK6450.
@@ -818,6 +819,7 @@ config ARCH_S5PC100
	select HAVE_S3C2410_I2C if I2C
	select HAVE_S3C_RTC if RTC_CLASS
	select HAVE_S3C2410_WATCHDOG if WATCHDOG
	select MULTI_IRQ_HANDLER
	help
	  Samsung S5PC100 series based systems

@@ -838,6 +840,7 @@ config ARCH_S5PV210
	select HAVE_S3C_RTC if RTC_CLASS
	select HAVE_S3C2410_WATCHDOG if WATCHDOG
	select NEED_MACH_MEMORY_H
	select MULTI_IRQ_HANDLER
	help
	  Samsung S5PV210/S5PC110 series based systems

+4 −3
Original line number Diff line number Diff line
@@ -10,7 +10,8 @@
 * published by the Free Software Foundation.
*/

#include <mach/map.h>
#include <plat/irqs.h>
		.macro  disable_fiq
		.endm

#include <asm/entry-macro-vic2.S>
		.macro  arch_ret_to_user, tmp1, tmp2
		.endm
+2 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@

#include <video/platform_lcd.h>

#include <asm/hardware/vic.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <asm/irq.h>
@@ -242,6 +243,7 @@ MACHINE_START(SMDK6440, "SMDK6440")
	.atag_offset	= 0x100,

	.init_irq	= s5p6440_init_irq,
	.handle_irq	= vic_handle_irq,
	.map_io		= smdk6440_map_io,
	.init_machine	= smdk6440_machine_init,
	.timer		= &s5p_timer,
+2 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@

#include <video/platform_lcd.h>

#include <asm/hardware/vic.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <asm/irq.h>
@@ -262,6 +263,7 @@ MACHINE_START(SMDK6450, "SMDK6450")
	.atag_offset	= 0x100,

	.init_irq	= s5p6450_init_irq,
	.handle_irq	= vic_handle_irq,
	.map_io		= smdk6450_map_io,
	.init_machine	= smdk6450_machine_init,
	.timer		= &s5p_timer,
+0 −25
Original line number Diff line number Diff line
@@ -12,39 +12,14 @@
 * warranty of any kind, whether express or implied.
*/

#include <asm/hardware/vic.h>
#include <mach/map.h>
#include <plat/irqs.h>

	.macro	disable_fiq
	.endm

	.macro	get_irqnr_preamble, base, tmp
	ldr	\base, =VA_VIC0
	.endm

	.macro	arch_ret_to_user, tmp1, tmp2
	.endm

	.macro	get_irqnr_and_base, irqnr, irqstat, base, tmp

	@ check the vic0
	mov	\irqnr, # S5P_IRQ_OFFSET + 31
	ldr	\irqstat, [ \base, # VIC_IRQ_STATUS ]
	teq	\irqstat, #0

	@ otherwise try vic1
	addeq	\tmp, \base, #(VA_VIC1 - VA_VIC0)
	addeq	\irqnr, \irqnr, #32
	ldreq	\irqstat, [ \tmp, # VIC_IRQ_STATUS ]
	teqeq	\irqstat, #0

	@ otherwise try vic2
	addeq	\tmp, \base, #(VA_VIC2 - VA_VIC0)
	addeq	\irqnr, \irqnr, #32
	ldreq	\irqstat, [ \tmp, # VIC_IRQ_STATUS ]
	teqeq	\irqstat, #0

	clzne	\irqstat, \irqstat
	subne	\irqnr, \irqnr, \irqstat
	.endm
Loading