diff options
| -rw-r--r-- | arch/arm/Kconfig | 3 | ||||
| -rw-r--r-- | arch/arm/mach-s5p64x0/include/mach/entry-macro.S | 7 | ||||
| -rw-r--r-- | arch/arm/mach-s5p64x0/mach-smdk6440.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-s5p64x0/mach-smdk6450.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-s5pc100/include/mach/entry-macro.S | 25 | ||||
| -rw-r--r-- | arch/arm/mach-s5pc100/mach-smdkc100.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-s5pv210/include/mach/entry-macro.S | 37 | ||||
| -rw-r--r-- | arch/arm/mach-s5pv210/mach-aquila.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-s5pv210/mach-goni.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-s5pv210/mach-smdkc110.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-s5pv210/mach-smdkv210.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-s5pv210/mach-torbreck.c | 2 |
12 files changed, 23 insertions, 65 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index f48219b4ad7a..4364de547e98 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -803,6 +803,7 @@ config ARCH_S5P64X0 | |||
| 803 | select HAVE_SCHED_CLOCK | 803 | select HAVE_SCHED_CLOCK |
| 804 | select HAVE_S3C2410_I2C if I2C | 804 | select HAVE_S3C2410_I2C if I2C |
| 805 | select HAVE_S3C_RTC if RTC_CLASS | 805 | select HAVE_S3C_RTC if RTC_CLASS |
| 806 | select MULTI_IRQ_HANDLER | ||
| 806 | help | 807 | help |
| 807 | Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440, | 808 | Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440, |
| 808 | SMDK6450. | 809 | SMDK6450. |
| @@ -818,6 +819,7 @@ config ARCH_S5PC100 | |||
| 818 | select HAVE_S3C2410_I2C if I2C | 819 | select HAVE_S3C2410_I2C if I2C |
| 819 | select HAVE_S3C_RTC if RTC_CLASS | 820 | select HAVE_S3C_RTC if RTC_CLASS |
| 820 | select HAVE_S3C2410_WATCHDOG if WATCHDOG | 821 | select HAVE_S3C2410_WATCHDOG if WATCHDOG |
| 822 | select MULTI_IRQ_HANDLER | ||
| 821 | help | 823 | help |
| 822 | Samsung S5PC100 series based systems | 824 | Samsung S5PC100 series based systems |
| 823 | 825 | ||
| @@ -838,6 +840,7 @@ config ARCH_S5PV210 | |||
| 838 | select HAVE_S3C_RTC if RTC_CLASS | 840 | select HAVE_S3C_RTC if RTC_CLASS |
| 839 | select HAVE_S3C2410_WATCHDOG if WATCHDOG | 841 | select HAVE_S3C2410_WATCHDOG if WATCHDOG |
| 840 | select NEED_MACH_MEMORY_H | 842 | select NEED_MACH_MEMORY_H |
| 843 | select MULTI_IRQ_HANDLER | ||
| 841 | help | 844 | help |
| 842 | Samsung S5PV210/S5PC110 series based systems | 845 | Samsung S5PV210/S5PC110 series based systems |
| 843 | 846 | ||
diff --git a/arch/arm/mach-s5p64x0/include/mach/entry-macro.S b/arch/arm/mach-s5p64x0/include/mach/entry-macro.S index 10b62b4f8211..fbb246d0a3df 100644 --- a/arch/arm/mach-s5p64x0/include/mach/entry-macro.S +++ b/arch/arm/mach-s5p64x0/include/mach/entry-macro.S | |||
| @@ -10,7 +10,8 @@ | |||
| 10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
| 11 | */ | 11 | */ |
| 12 | 12 | ||
| 13 | #include <mach/map.h> | 13 | .macro disable_fiq |
| 14 | #include <plat/irqs.h> | 14 | .endm |
| 15 | 15 | ||
| 16 | #include <asm/entry-macro-vic2.S> | 16 | .macro arch_ret_to_user, tmp1, tmp2 |
| 17 | .endm | ||
diff --git a/arch/arm/mach-s5p64x0/mach-smdk6440.c b/arch/arm/mach-s5p64x0/mach-smdk6440.c index 4a1250cd1356..c272c3f7d6de 100644 --- a/arch/arm/mach-s5p64x0/mach-smdk6440.c +++ b/arch/arm/mach-s5p64x0/mach-smdk6440.c | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | 27 | ||
| 28 | #include <video/platform_lcd.h> | 28 | #include <video/platform_lcd.h> |
| 29 | 29 | ||
| 30 | #include <asm/hardware/vic.h> | ||
| 30 | #include <asm/mach/arch.h> | 31 | #include <asm/mach/arch.h> |
| 31 | #include <asm/mach/map.h> | 32 | #include <asm/mach/map.h> |
| 32 | #include <asm/irq.h> | 33 | #include <asm/irq.h> |
| @@ -242,6 +243,7 @@ MACHINE_START(SMDK6440, "SMDK6440") | |||
| 242 | .atag_offset = 0x100, | 243 | .atag_offset = 0x100, |
| 243 | 244 | ||
| 244 | .init_irq = s5p6440_init_irq, | 245 | .init_irq = s5p6440_init_irq, |
| 246 | .handle_irq = vic_handle_irq, | ||
| 245 | .map_io = smdk6440_map_io, | 247 | .map_io = smdk6440_map_io, |
| 246 | .init_machine = smdk6440_machine_init, | 248 | .init_machine = smdk6440_machine_init, |
| 247 | .timer = &s5p_timer, | 249 | .timer = &s5p_timer, |
diff --git a/arch/arm/mach-s5p64x0/mach-smdk6450.c b/arch/arm/mach-s5p64x0/mach-smdk6450.c index 0ab129ecf009..7a4700959616 100644 --- a/arch/arm/mach-s5p64x0/mach-smdk6450.c +++ b/arch/arm/mach-s5p64x0/mach-smdk6450.c | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | 27 | ||
| 28 | #include <video/platform_lcd.h> | 28 | #include <video/platform_lcd.h> |
| 29 | 29 | ||
| 30 | #include <asm/hardware/vic.h> | ||
| 30 | #include <asm/mach/arch.h> | 31 | #include <asm/mach/arch.h> |
| 31 | #include <asm/mach/map.h> | 32 | #include <asm/mach/map.h> |
| 32 | #include <asm/irq.h> | 33 | #include <asm/irq.h> |
| @@ -262,6 +263,7 @@ MACHINE_START(SMDK6450, "SMDK6450") | |||
| 262 | .atag_offset = 0x100, | 263 | .atag_offset = 0x100, |
| 263 | 264 | ||
| 264 | .init_irq = s5p6450_init_irq, | 265 | .init_irq = s5p6450_init_irq, |
| 266 | .handle_irq = vic_handle_irq, | ||
| 265 | .map_io = smdk6450_map_io, | 267 | .map_io = smdk6450_map_io, |
| 266 | .init_machine = smdk6450_machine_init, | 268 | .init_machine = smdk6450_machine_init, |
| 267 | .timer = &s5p_timer, | 269 | .timer = &s5p_timer, |
diff --git a/arch/arm/mach-s5pc100/include/mach/entry-macro.S b/arch/arm/mach-s5pc100/include/mach/entry-macro.S index ba76af052c81..b8c242edfa22 100644 --- a/arch/arm/mach-s5pc100/include/mach/entry-macro.S +++ b/arch/arm/mach-s5pc100/include/mach/entry-macro.S | |||
| @@ -12,39 +12,14 @@ | |||
| 12 | * warranty of any kind, whether express or implied. | 12 | * warranty of any kind, whether express or implied. |
| 13 | */ | 13 | */ |
| 14 | 14 | ||
| 15 | #include <asm/hardware/vic.h> | ||
| 16 | #include <mach/map.h> | ||
| 17 | #include <plat/irqs.h> | ||
| 18 | |||
| 19 | .macro disable_fiq | 15 | .macro disable_fiq |
| 20 | .endm | 16 | .endm |
| 21 | 17 | ||
| 22 | .macro get_irqnr_preamble, base, tmp | 18 | .macro get_irqnr_preamble, base, tmp |
| 23 | ldr \base, =VA_VIC0 | ||
| 24 | .endm | 19 | .endm |
| 25 | 20 | ||
| 26 | .macro arch_ret_to_user, tmp1, tmp2 | 21 | .macro arch_ret_to_user, tmp1, tmp2 |
| 27 | .endm | 22 | .endm |
| 28 | 23 | ||
| 29 | .macro get_irqnr_and_base, irqnr, irqstat, base, tmp | 24 | .macro get_irqnr_and_base, irqnr, irqstat, base, tmp |
| 30 | |||
| 31 | @ check the vic0 | ||
| 32 | mov \irqnr, # S5P_IRQ_OFFSET + 31 | ||
| 33 | ldr \irqstat, [ \base, # VIC_IRQ_STATUS ] | ||
| 34 | teq \irqstat, #0 | ||
| 35 | |||
| 36 | @ otherwise try vic1 | ||
| 37 | addeq \tmp, \base, #(VA_VIC1 - VA_VIC0) | ||
| 38 | addeq \irqnr, \irqnr, #32 | ||
| 39 | ldreq \irqstat, [ \tmp, # VIC_IRQ_STATUS ] | ||
| 40 | teqeq \irqstat, #0 | ||
| 41 | |||
| 42 | @ otherwise try vic2 | ||
| 43 | addeq \tmp, \base, #(VA_VIC2 - VA_VIC0) | ||
| 44 | addeq \irqnr, \irqnr, #32 | ||
| 45 | ldreq \irqstat, [ \tmp, # VIC_IRQ_STATUS ] | ||
| 46 | teqeq \irqstat, #0 | ||
| 47 | |||
| 48 | clzne \irqstat, \irqstat | ||
| 49 | subne \irqnr, \irqnr, \irqstat | ||
| 50 | .endm | 25 | .endm |
diff --git a/arch/arm/mach-s5pc100/mach-smdkc100.c b/arch/arm/mach-s5pc100/mach-smdkc100.c index 26f5c91c9427..93ebe3a92d10 100644 --- a/arch/arm/mach-s5pc100/mach-smdkc100.c +++ b/arch/arm/mach-s5pc100/mach-smdkc100.c | |||
| @@ -25,6 +25,7 @@ | |||
| 25 | #include <linux/input.h> | 25 | #include <linux/input.h> |
| 26 | #include <linux/pwm_backlight.h> | 26 | #include <linux/pwm_backlight.h> |
| 27 | 27 | ||
| 28 | #include <asm/hardware/vic.h> | ||
| 28 | #include <asm/mach/arch.h> | 29 | #include <asm/mach/arch.h> |
| 29 | #include <asm/mach/map.h> | 30 | #include <asm/mach/map.h> |
| 30 | 31 | ||
| @@ -250,6 +251,7 @@ MACHINE_START(SMDKC100, "SMDKC100") | |||
| 250 | /* Maintainer: Byungho Min <bhmin@samsung.com> */ | 251 | /* Maintainer: Byungho Min <bhmin@samsung.com> */ |
| 251 | .atag_offset = 0x100, | 252 | .atag_offset = 0x100, |
| 252 | .init_irq = s5pc100_init_irq, | 253 | .init_irq = s5pc100_init_irq, |
| 254 | .handle_irq = vic_handle_irq, | ||
| 253 | .map_io = smdkc100_map_io, | 255 | .map_io = smdkc100_map_io, |
| 254 | .init_machine = smdkc100_machine_init, | 256 | .init_machine = smdkc100_machine_init, |
| 255 | .timer = &s3c24xx_timer, | 257 | .timer = &s3c24xx_timer, |
diff --git a/arch/arm/mach-s5pv210/include/mach/entry-macro.S b/arch/arm/mach-s5pv210/include/mach/entry-macro.S index 3aa41ac59f07..bebca1b5d0b1 100644 --- a/arch/arm/mach-s5pv210/include/mach/entry-macro.S +++ b/arch/arm/mach-s5pv210/include/mach/entry-macro.S | |||
| @@ -10,45 +10,8 @@ | |||
| 10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
| 11 | */ | 11 | */ |
| 12 | 12 | ||
| 13 | #include <asm/hardware/vic.h> | ||
| 14 | #include <mach/map.h> | ||
| 15 | #include <plat/irqs.h> | ||
| 16 | |||
| 17 | .macro disable_fiq | 13 | .macro disable_fiq |
| 18 | .endm | 14 | .endm |
| 19 | 15 | ||
| 20 | .macro get_irqnr_preamble, base, tmp | ||
| 21 | ldr \base, =VA_VIC0 | ||
| 22 | .endm | ||
| 23 | |||
| 24 | .macro arch_ret_to_user, tmp1, tmp2 | 16 | .macro arch_ret_to_user, tmp1, tmp2 |
| 25 | .endm | 17 | .endm |
| 26 | |||
| 27 | .macro get_irqnr_and_base, irqnr, irqstat, base, tmp | ||
| 28 | |||
| 29 | @ check the vic0 | ||
| 30 | mov \irqnr, # S5P_IRQ_OFFSET + 31 | ||
| 31 | ldr \irqstat, [ \base, # VIC_IRQ_STATUS ] | ||
| 32 | teq \irqstat, #0 | ||
| 33 | |||
| 34 | @ otherwise try vic1 | ||
| 35 | addeq \tmp, \base, #(VA_VIC1 - VA_VIC0) | ||
| 36 | addeq \irqnr, \irqnr, #32 | ||
| 37 | ldreq \irqstat, [ \tmp, # VIC_IRQ_STATUS ] | ||
| 38 | teqeq \irqstat, #0 | ||
| 39 | |||
| 40 | @ otherwise try vic2 | ||
| 41 | addeq \tmp, \base, #(VA_VIC2 - VA_VIC0) | ||
| 42 | addeq \irqnr, \irqnr, #32 | ||
| 43 | ldreq \irqstat, [ \tmp, # VIC_IRQ_STATUS ] | ||
| 44 | teqeq \irqstat, #0 | ||
| 45 | |||
| 46 | @ otherwise try vic3 | ||
| 47 | addeq \tmp, \base, #(VA_VIC3 - VA_VIC0) | ||
| 48 | addeq \irqnr, \irqnr, #32 | ||
| 49 | ldreq \irqstat, [ \tmp, # VIC_IRQ_STATUS ] | ||
| 50 | teqeq \irqstat, #0 | ||
| 51 | |||
| 52 | clzne \irqstat, \irqstat | ||
| 53 | subne \irqnr, \irqnr, \irqstat | ||
| 54 | .endm | ||
diff --git a/arch/arm/mach-s5pv210/mach-aquila.c b/arch/arm/mach-s5pv210/mach-aquila.c index 5811a96125f0..71ca95604d63 100644 --- a/arch/arm/mach-s5pv210/mach-aquila.c +++ b/arch/arm/mach-s5pv210/mach-aquila.c | |||
| @@ -22,6 +22,7 @@ | |||
| 22 | #include <linux/input.h> | 22 | #include <linux/input.h> |
| 23 | #include <linux/gpio.h> | 23 | #include <linux/gpio.h> |
| 24 | 24 | ||
| 25 | #include <asm/hardware/vic.h> | ||
| 25 | #include <asm/mach/arch.h> | 26 | #include <asm/mach/arch.h> |
| 26 | #include <asm/mach/map.h> | 27 | #include <asm/mach/map.h> |
| 27 | #include <asm/setup.h> | 28 | #include <asm/setup.h> |
| @@ -680,6 +681,7 @@ MACHINE_START(AQUILA, "Aquila") | |||
| 680 | Kyungmin Park <kyungmin.park@samsung.com> */ | 681 | Kyungmin Park <kyungmin.park@samsung.com> */ |
| 681 | .atag_offset = 0x100, | 682 | .atag_offset = 0x100, |
| 682 | .init_irq = s5pv210_init_irq, | 683 | .init_irq = s5pv210_init_irq, |
| 684 | .handle_irq = vic_handle_irq, | ||
| 683 | .map_io = aquila_map_io, | 685 | .map_io = aquila_map_io, |
| 684 | .init_machine = aquila_machine_init, | 686 | .init_machine = aquila_machine_init, |
| 685 | .timer = &s5p_timer, | 687 | .timer = &s5p_timer, |
diff --git a/arch/arm/mach-s5pv210/mach-goni.c b/arch/arm/mach-s5pv210/mach-goni.c index 15edcae448b9..448fd9ea96f2 100644 --- a/arch/arm/mach-s5pv210/mach-goni.c +++ b/arch/arm/mach-s5pv210/mach-goni.c | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | #include <linux/gpio.h> | 27 | #include <linux/gpio.h> |
| 28 | #include <linux/interrupt.h> | 28 | #include <linux/interrupt.h> |
| 29 | 29 | ||
| 30 | #include <asm/hardware/vic.h> | ||
| 30 | #include <asm/mach/arch.h> | 31 | #include <asm/mach/arch.h> |
| 31 | #include <asm/mach/map.h> | 32 | #include <asm/mach/map.h> |
| 32 | #include <asm/setup.h> | 33 | #include <asm/setup.h> |
| @@ -956,6 +957,7 @@ MACHINE_START(GONI, "GONI") | |||
| 956 | /* Maintainers: Kyungmin Park <kyungmin.park@samsung.com> */ | 957 | /* Maintainers: Kyungmin Park <kyungmin.park@samsung.com> */ |
| 957 | .atag_offset = 0x100, | 958 | .atag_offset = 0x100, |
| 958 | .init_irq = s5pv210_init_irq, | 959 | .init_irq = s5pv210_init_irq, |
| 960 | .handle_irq = vic_handle_irq, | ||
| 959 | .map_io = goni_map_io, | 961 | .map_io = goni_map_io, |
| 960 | .init_machine = goni_machine_init, | 962 | .init_machine = goni_machine_init, |
| 961 | .timer = &s5p_timer, | 963 | .timer = &s5p_timer, |
diff --git a/arch/arm/mach-s5pv210/mach-smdkc110.c b/arch/arm/mach-s5pv210/mach-smdkc110.c index f7266bb0cac8..c2531ffc720b 100644 --- a/arch/arm/mach-s5pv210/mach-smdkc110.c +++ b/arch/arm/mach-s5pv210/mach-smdkc110.c | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | #include <linux/i2c.h> | 15 | #include <linux/i2c.h> |
| 16 | #include <linux/sysdev.h> | 16 | #include <linux/sysdev.h> |
| 17 | 17 | ||
| 18 | #include <asm/hardware/vic.h> | ||
| 18 | #include <asm/mach/arch.h> | 19 | #include <asm/mach/arch.h> |
| 19 | #include <asm/mach/map.h> | 20 | #include <asm/mach/map.h> |
| 20 | #include <asm/setup.h> | 21 | #include <asm/setup.h> |
| @@ -138,6 +139,7 @@ MACHINE_START(SMDKC110, "SMDKC110") | |||
| 138 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | 139 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ |
| 139 | .atag_offset = 0x100, | 140 | .atag_offset = 0x100, |
| 140 | .init_irq = s5pv210_init_irq, | 141 | .init_irq = s5pv210_init_irq, |
| 142 | .handle_irq = vic_handle_irq, | ||
| 141 | .map_io = smdkc110_map_io, | 143 | .map_io = smdkc110_map_io, |
| 142 | .init_machine = smdkc110_machine_init, | 144 | .init_machine = smdkc110_machine_init, |
| 143 | .timer = &s5p_timer, | 145 | .timer = &s5p_timer, |
diff --git a/arch/arm/mach-s5pv210/mach-smdkv210.c b/arch/arm/mach-s5pv210/mach-smdkv210.c index a9106c392398..4ca77c41d499 100644 --- a/arch/arm/mach-s5pv210/mach-smdkv210.c +++ b/arch/arm/mach-s5pv210/mach-smdkv210.c | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | #include <linux/delay.h> | 20 | #include <linux/delay.h> |
| 21 | #include <linux/pwm_backlight.h> | 21 | #include <linux/pwm_backlight.h> |
| 22 | 22 | ||
| 23 | #include <asm/hardware/vic.h> | ||
| 23 | #include <asm/mach/arch.h> | 24 | #include <asm/mach/arch.h> |
| 24 | #include <asm/mach/map.h> | 25 | #include <asm/mach/map.h> |
| 25 | #include <asm/setup.h> | 26 | #include <asm/setup.h> |
| @@ -315,6 +316,7 @@ MACHINE_START(SMDKV210, "SMDKV210") | |||
| 315 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | 316 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ |
| 316 | .atag_offset = 0x100, | 317 | .atag_offset = 0x100, |
| 317 | .init_irq = s5pv210_init_irq, | 318 | .init_irq = s5pv210_init_irq, |
| 319 | .handle_irq = vic_handle_irq, | ||
| 318 | .map_io = smdkv210_map_io, | 320 | .map_io = smdkv210_map_io, |
| 319 | .init_machine = smdkv210_machine_init, | 321 | .init_machine = smdkv210_machine_init, |
| 320 | .timer = &s5p_timer, | 322 | .timer = &s5p_timer, |
diff --git a/arch/arm/mach-s5pv210/mach-torbreck.c b/arch/arm/mach-s5pv210/mach-torbreck.c index 97cc066c5369..df70fcb34516 100644 --- a/arch/arm/mach-s5pv210/mach-torbreck.c +++ b/arch/arm/mach-s5pv210/mach-torbreck.c | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
| 15 | #include <linux/serial_core.h> | 15 | #include <linux/serial_core.h> |
| 16 | 16 | ||
| 17 | #include <asm/hardware/vic.h> | ||
| 17 | #include <asm/mach/arch.h> | 18 | #include <asm/mach/arch.h> |
| 18 | #include <asm/mach/map.h> | 19 | #include <asm/mach/map.h> |
| 19 | #include <asm/setup.h> | 20 | #include <asm/setup.h> |
| @@ -127,6 +128,7 @@ MACHINE_START(TORBRECK, "TORBRECK") | |||
| 127 | /* Maintainer: Hyunchul Ko <ghcstop@gmail.com> */ | 128 | /* Maintainer: Hyunchul Ko <ghcstop@gmail.com> */ |
| 128 | .atag_offset = 0x100, | 129 | .atag_offset = 0x100, |
| 129 | .init_irq = s5pv210_init_irq, | 130 | .init_irq = s5pv210_init_irq, |
| 131 | .handle_irq = vic_handle_irq, | ||
| 130 | .map_io = torbreck_map_io, | 132 | .map_io = torbreck_map_io, |
| 131 | .init_machine = torbreck_machine_init, | 133 | .init_machine = torbreck_machine_init, |
| 132 | .timer = &s5p_timer, | 134 | .timer = &s5p_timer, |
