mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 05:48:40 +00:00
ARM: S3C24XX: integrate s3c2440 irqs into common init
Now all the arch_initcalls for s3c244x irqs are gone. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
This commit is contained in:
parent
2286cf467e
commit
7cefed5e6b
1 changed files with 13 additions and 33 deletions
|
@ -838,44 +838,12 @@ static struct irq_chip s3c_irq_wdtac97 = {
|
|||
.irq_ack = s3c_irq_wdtac97_ack,
|
||||
};
|
||||
|
||||
static int s3c2440_irq_add(struct device *dev, struct subsys_interface *sif)
|
||||
void __init s3c2440_init_irq(void)
|
||||
{
|
||||
unsigned int irqno;
|
||||
|
||||
printk("S3C2440: IRQ Support\n");
|
||||
|
||||
/* add new chained handler for wdt, ac7 */
|
||||
|
||||
irq_set_chip_and_handler(IRQ_WDT, &s3c_irq_level_chip,
|
||||
handle_level_irq);
|
||||
irq_set_chained_handler(IRQ_WDT, s3c_irq_demux_wdtac97);
|
||||
|
||||
for (irqno = IRQ_S3C2440_WDT; irqno <= IRQ_S3C2440_AC97; irqno++) {
|
||||
irq_set_chip_and_handler(irqno, &s3c_irq_wdtac97,
|
||||
handle_level_irq);
|
||||
set_irq_flags(irqno, IRQF_VALID);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct subsys_interface s3c2440_irq_interface = {
|
||||
.name = "s3c2440_irq",
|
||||
.subsys = &s3c2440_subsys,
|
||||
.add_dev = s3c2440_irq_add,
|
||||
};
|
||||
|
||||
static int s3c2440_irq_init(void)
|
||||
{
|
||||
return subsys_interface_register(&s3c2440_irq_interface);
|
||||
}
|
||||
|
||||
arch_initcall(s3c2440_irq_init);
|
||||
|
||||
void __init s3c2440_init_irq(void)
|
||||
{
|
||||
unsigned int irqno;
|
||||
|
||||
s3c24xx_init_irq();
|
||||
|
||||
irq_set_chip_and_handler(IRQ_NFCON, &s3c_irq_level_chip,
|
||||
|
@ -893,6 +861,18 @@ void __init s3c2440_init_irq(void)
|
|||
handle_level_irq);
|
||||
set_irq_flags(irqno, IRQF_VALID);
|
||||
}
|
||||
|
||||
/* add new chained handler for wdt, ac7 */
|
||||
|
||||
irq_set_chip_and_handler(IRQ_WDT, &s3c_irq_level_chip,
|
||||
handle_level_irq);
|
||||
irq_set_chained_handler(IRQ_WDT, s3c_irq_demux_wdtac97);
|
||||
|
||||
for (irqno = IRQ_S3C2440_WDT; irqno <= IRQ_S3C2440_AC97; irqno++) {
|
||||
irq_set_chip_and_handler(irqno, &s3c_irq_wdtac97,
|
||||
handle_level_irq);
|
||||
set_irq_flags(irqno, IRQF_VALID);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in a new issue