22 #include <linux/export.h>
52 static void or1k_pic_unmask(
struct irq_data *data)
57 static void or1k_pic_ack(
struct irq_data *data)
71 #ifdef CONFIG_OR1K_1200
80 WARN(1,
"Interrupt handling possibly broken\n");
85 static void or1k_pic_mask_ack(
struct irq_data *data)
89 #ifdef CONFIG_OR1K_1200
93 WARN(1,
"Interrupt handling possibly broken\n");
100 static int or1k_pic_set_type(
struct irq_data *data,
unsigned int flow_type)
113 .irq_unmask = or1k_pic_unmask,
114 .irq_mask = or1k_pic_mask,
115 .irq_ack = or1k_pic_ack,
116 .irq_mask_ack = or1k_pic_mask_ack,
121 static inline int pic_get_irq(
int first)
129 hwirq = hwirq + first -1;
154 static void __init or1k_irq_init(
void)
166 &or1k_irq_domain_ops,
NULL);
177 struct pt_regs *old_regs = set_irq_regs(regs);
181 while ((irq = pic_get_irq(irq + 1)) !=
NO_IRQ)
185 set_irq_regs(old_regs);