14 #include <linux/types.h>
20 static int ioasic_irq_base;
22 static void unmask_ioasic_irq(
struct irq_data *
d)
27 simr |= (1 << (d->
irq - ioasic_irq_base));
31 static void mask_ioasic_irq(
struct irq_data *
d)
36 simr &= ~(1 << (d->
irq - ioasic_irq_base));
40 static void ack_ioasic_irq(
struct irq_data *
d)
46 static struct irq_chip ioasic_irq_type = {
48 .irq_ack = ack_ioasic_irq,
49 .irq_mask = mask_ioasic_irq,
50 .irq_mask_ack = ack_ioasic_irq,
51 .irq_unmask = unmask_ioasic_irq,
54 static struct irq_chip ioasic_dma_irq_type = {
55 .name =
"IO-ASIC-DMA",
56 .irq_ack = ack_ioasic_irq,
57 .irq_mask = mask_ioasic_irq,
58 .irq_mask_ack = ack_ioasic_irq,
59 .irq_unmask = unmask_ioasic_irq,
71 irq_set_chip_and_handler(i, &ioasic_irq_type,
76 ioasic_irq_base = base;