]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ARM: S3C24XX: modify s3c2416 irq init to initialize all irqs
authorHeiko Stuebner <heiko@sntech.de>
Tue, 29 Jan 2013 18:25:22 +0000 (10:25 -0800)
committerKukjin Kim <kgene.kim@samsung.com>
Sun, 3 Feb 2013 23:52:49 +0000 (15:52 -0800)
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>
arch/arm/mach-s3c24xx/mach-smdk2416.c
arch/arm/plat-s3c24xx/irq.c
arch/arm/plat-samsung/include/plat/s3c2416.h

index 7de4120189e8cb21183bb1d269561bb0d93ed700..2abb66fdf9286f239ed43a8ddd522fb93a0c0379 100644 (file)
@@ -250,7 +250,7 @@ MACHINE_START(SMDK2416, "SMDK2416")
        /* Maintainer: Yauhen Kharuzhy <jekhor@gmail.com> */
        .atag_offset    = 0x100,
 
-       .init_irq       = s3c24xx_init_irq,
+       .init_irq       = s3c2416_init_irq,
        .map_io         = smdk2416_map_io,
        .init_machine   = smdk2416_machine_init,
        .timer          = &s3c24xx_timer,
index e43214461960f53597c49ab8fb596bb26b5137a5..5b325b26f77187bf21b3dabbdaf0a309d7776902 100644 (file)
@@ -874,10 +874,11 @@ static void s3c2416_irq_add_second(void)
        }
 }
 
-static int s3c2416_irq_add(struct device *dev,
-                                 struct subsys_interface *sif)
+void __init s3c2416_init_irq(void)
 {
-       printk(KERN_INFO "S3C2416: IRQ Support\n");
+       pr_info("S3C2416: IRQ Support\n");
+
+       s3c24xx_init_irq();
 
        s3c2416_add_sub(IRQ_LCD, s3c2416_irq_demux_lcd, &s3c2416_irq_lcd,
                        IRQ_S3C2443_LCD2, IRQ_S3C2443_LCD4);
@@ -894,21 +895,6 @@ static int s3c2416_irq_add(struct device *dev,
                        IRQ_S3C2443_WDT, IRQ_S3C2443_AC97);
 
        s3c2416_irq_add_second();
-
-       return 0;
 }
 
-static struct subsys_interface s3c2416_irq_interface = {
-       .name           = "s3c2416_irq",
-       .subsys         = &s3c2416_subsys,
-       .add_dev        = s3c2416_irq_add,
-};
-
-static int __init s3c2416_irq_init(void)
-{
-       return subsys_interface_register(&s3c2416_irq_interface);
-}
-
-arch_initcall(s3c2416_irq_init);
-
 #endif
index 7178e338e25ed8e7981e9b134dd7508aa8f4f128..f27399a3c68dcc2f40ab2f06d2dc3ed06ca5b76b 100644 (file)
@@ -25,6 +25,7 @@ extern  int s3c2416_baseclk_add(void);
 
 extern void s3c2416_restart(char mode, const char *cmd);
 
+extern void s3c2416_init_irq(void);
 extern struct syscore_ops s3c2416_irq_syscore_ops;
 
 #else