2 #include <linux/list.h>
10 static void iomd_ack_irq_a(
struct irq_data *
d)
20 static void iomd_mask_irq_a(
struct irq_data *
d)
29 static void iomd_unmask_irq_a(
struct irq_data *
d)
38 static struct irq_chip iomd_a_chip = {
39 .irq_ack = iomd_ack_irq_a,
40 .irq_mask = iomd_mask_irq_a,
41 .irq_unmask = iomd_unmask_irq_a,
44 static void iomd_mask_irq_b(
struct irq_data *
d)
48 mask = 1 << (d->
irq & 7);
53 static void iomd_unmask_irq_b(
struct irq_data *
d)
57 mask = 1 << (d->
irq & 7);
62 static struct irq_chip iomd_b_chip = {
63 .irq_ack = iomd_mask_irq_b,
64 .irq_mask = iomd_mask_irq_b,
65 .irq_unmask = iomd_unmask_irq_b,
68 static void iomd_mask_irq_dma(
struct irq_data *
d)
72 mask = 1 << (d->
irq & 7);
77 static void iomd_unmask_irq_dma(
struct irq_data *
d)
81 mask = 1 << (d->
irq & 7);
86 static struct irq_chip iomd_dma_chip = {
87 .irq_ack = iomd_mask_irq_dma,
88 .irq_mask = iomd_mask_irq_dma,
89 .irq_unmask = iomd_unmask_irq_dma,
92 static void iomd_mask_irq_fiq(
struct irq_data *
d)
96 mask = 1 << (d->
irq & 7);
101 static void iomd_unmask_irq_fiq(
struct irq_data *
d)
105 mask = 1 << (d->
irq & 7);
110 static struct irq_chip iomd_fiq_chip = {
111 .irq_ack = iomd_mask_irq_fiq,
112 .irq_mask = iomd_mask_irq_fiq,
113 .irq_unmask = iomd_unmask_irq_fiq,
130 for (irq = 0; irq <
NR_IRQS; irq++) {
133 if (irq <= 6 || (irq >= 9 && irq <= 15))
136 if (irq == 21 || (irq >= 16 && irq <= 19) ||
142 irq_set_chip_and_handler(irq, &iomd_a_chip,
148 irq_set_chip_and_handler(irq, &iomd_b_chip,
154 irq_set_chip_and_handler(irq, &iomd_dma_chip,