diff options
author | Heiko Stuebner <heiko@sntech.de> | 2013-01-29 13:25:22 -0500 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2013-02-03 18:52:49 -0500 |
commit | 4a282dd3b616a1e7a7f170973ed2a12332544dc3 (patch) | |
tree | 178728bf1439914c9c35ce5043fb1b2833e598ca | |
parent | ef602eb53c84100ab801ffa3a11ea02315fe38a8 (diff) |
ARM: S3C24XX: modify s3c2416 irq init to initialize all irqs
Previously the irq init used s3c24xx_init_irq and an additional
arch_initcall to add the cpu specific irqs.
To be able to simplyfy the irq init later, create a new function
s3c416_init_irq, which then calls s3c24xx_init_irq but also adds
the cpu specific irqs.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
-rw-r--r-- | arch/arm/mach-s3c24xx/mach-smdk2416.c | 2 | ||||
-rw-r--r-- | arch/arm/plat-s3c24xx/irq.c | 22 | ||||
-rw-r--r-- | arch/arm/plat-samsung/include/plat/s3c2416.h | 1 |
3 files changed, 6 insertions, 19 deletions
diff --git a/arch/arm/mach-s3c24xx/mach-smdk2416.c b/arch/arm/mach-s3c24xx/mach-smdk2416.c index 7de4120189e8..2abb66fdf928 100644 --- a/arch/arm/mach-s3c24xx/mach-smdk2416.c +++ b/arch/arm/mach-s3c24xx/mach-smdk2416.c | |||
@@ -250,7 +250,7 @@ MACHINE_START(SMDK2416, "SMDK2416") | |||
250 | /* Maintainer: Yauhen Kharuzhy <jekhor@gmail.com> */ | 250 | /* Maintainer: Yauhen Kharuzhy <jekhor@gmail.com> */ |
251 | .atag_offset = 0x100, | 251 | .atag_offset = 0x100, |
252 | 252 | ||
253 | .init_irq = s3c24xx_init_irq, | 253 | .init_irq = s3c2416_init_irq, |
254 | .map_io = smdk2416_map_io, | 254 | .map_io = smdk2416_map_io, |
255 | .init_machine = smdk2416_machine_init, | 255 | .init_machine = smdk2416_machine_init, |
256 | .timer = &s3c24xx_timer, | 256 | .timer = &s3c24xx_timer, |
diff --git a/arch/arm/plat-s3c24xx/irq.c b/arch/arm/plat-s3c24xx/irq.c index e43214461960..5b325b26f771 100644 --- a/arch/arm/plat-s3c24xx/irq.c +++ b/arch/arm/plat-s3c24xx/irq.c | |||
@@ -874,10 +874,11 @@ static void s3c2416_irq_add_second(void) | |||
874 | } | 874 | } |
875 | } | 875 | } |
876 | 876 | ||
877 | static int s3c2416_irq_add(struct device *dev, | 877 | void __init s3c2416_init_irq(void) |
878 | struct subsys_interface *sif) | ||
879 | { | 878 | { |
880 | printk(KERN_INFO "S3C2416: IRQ Support\n"); | 879 | pr_info("S3C2416: IRQ Support\n"); |
880 | |||
881 | s3c24xx_init_irq(); | ||
881 | 882 | ||
882 | s3c2416_add_sub(IRQ_LCD, s3c2416_irq_demux_lcd, &s3c2416_irq_lcd, | 883 | s3c2416_add_sub(IRQ_LCD, s3c2416_irq_demux_lcd, &s3c2416_irq_lcd, |
883 | IRQ_S3C2443_LCD2, IRQ_S3C2443_LCD4); | 884 | IRQ_S3C2443_LCD2, IRQ_S3C2443_LCD4); |
@@ -894,21 +895,6 @@ static int s3c2416_irq_add(struct device *dev, | |||
894 | IRQ_S3C2443_WDT, IRQ_S3C2443_AC97); | 895 | IRQ_S3C2443_WDT, IRQ_S3C2443_AC97); |
895 | 896 | ||
896 | s3c2416_irq_add_second(); | 897 | s3c2416_irq_add_second(); |
897 | |||
898 | return 0; | ||
899 | } | 898 | } |
900 | 899 | ||
901 | static struct subsys_interface s3c2416_irq_interface = { | ||
902 | .name = "s3c2416_irq", | ||
903 | .subsys = &s3c2416_subsys, | ||
904 | .add_dev = s3c2416_irq_add, | ||
905 | }; | ||
906 | |||
907 | static int __init s3c2416_irq_init(void) | ||
908 | { | ||
909 | return subsys_interface_register(&s3c2416_irq_interface); | ||
910 | } | ||
911 | |||
912 | arch_initcall(s3c2416_irq_init); | ||
913 | |||
914 | #endif | 900 | #endif |
diff --git a/arch/arm/plat-samsung/include/plat/s3c2416.h b/arch/arm/plat-samsung/include/plat/s3c2416.h index 7178e338e25e..f27399a3c68d 100644 --- a/arch/arm/plat-samsung/include/plat/s3c2416.h +++ b/arch/arm/plat-samsung/include/plat/s3c2416.h | |||
@@ -25,6 +25,7 @@ extern int s3c2416_baseclk_add(void); | |||
25 | 25 | ||
26 | extern void s3c2416_restart(char mode, const char *cmd); | 26 | extern void s3c2416_restart(char mode, const char *cmd); |
27 | 27 | ||
28 | extern void s3c2416_init_irq(void); | ||
28 | extern struct syscore_ops s3c2416_irq_syscore_ops; | 29 | extern struct syscore_ops s3c2416_irq_syscore_ops; |
29 | 30 | ||
30 | #else | 31 | #else |