16 #include <linux/kernel.h>
28 static void s3c_irq_demux_vic_timer(
unsigned int irq,
struct irq_desc *
desc)
31 chained_irq_enter(chip, desc);
33 chained_irq_exit(chip, desc);
37 static void s3c_irq_timer_ack(
struct irq_data *
d)
39 struct irq_chip_generic *
gc = irq_data_get_irq_chip_data(d);
40 u32 mask = (1 << 5) << (d->
irq - gc->irq_base);
57 struct irq_chip_generic *s3c_tgc;
58 struct irq_chip_type *
ct;
61 #ifdef CONFIG_ARCH_EXYNOS
80 pr_err(
"%s: irq_alloc_generic_chip for IRQ %d failed\n",
85 ct = s3c_tgc->chip_types;
88 ct->chip.irq_ack = s3c_irq_timer_ack;
92 s3c_tgc->mask_cache &= 0x1f;
94 for (i = 0; i < num; i++, timer_irq++) {
95 irq_set_chained_handler(pirq[i], s3c_irq_demux_vic_timer);