20 #include <linux/export.h>
33 static unsigned int fpga2irq(
unsigned int irq)
75 unsigned int irq = data->
irq;
77 unsigned int bit = irq -
set.base;
81 static void enable_se7724_irq(
struct irq_data *data)
83 unsigned int irq = data->
irq;
84 struct fpga_irq set = get_fpga_irq(fpga2irq(irq));
85 unsigned int bit = irq -
set.base;
90 .name =
"SE7724-FPGA",
91 .irq_mask = disable_se7724_irq,
92 .irq_unmask = enable_se7724_irq,
95 static void se7724_irq_demux(
unsigned int irq,
struct irq_desc *
desc)
97 struct fpga_irq set = get_fpga_irq(irq);
99 unsigned int ext_irq =
set.base;
103 for (; intv; intv >>= 1, ext_irq++) {
129 pr_err(
"%s: failed hooking irqs for FPGA\n", __func__);
137 irq_set_chained_handler(
IRQ0_IRQ, se7724_irq_demux);
140 irq_set_chained_handler(
IRQ1_IRQ, se7724_irq_demux);
143 irq_set_chained_handler(
IRQ2_IRQ, se7724_irq_demux);