35 #include <linux/kernel.h>
37 #include <linux/linkage.h>
41 #include <linux/slab.h>
44 #include <asm/errno.h>
45 #include <asm/signal.h>
46 #include <asm/ptrace.h>
48 #include <asm/thread_info.h>
55 #if defined(CONFIG_CPU_XLP)
59 #elif defined(CONFIG_CPU_XLR)
76 static void xlp_pic_enable(
struct irq_data *
d)
86 spin_unlock_irqrestore(&nlm_pic_lock, flags);
89 static void xlp_pic_disable(
struct irq_data *d)
99 spin_unlock_irqrestore(&nlm_pic_lock, flags);
102 static void xlp_pic_mask_ack(
struct irq_data *d)
109 static void xlp_pic_unmask(
struct irq_data *d)
111 void *hd = irq_data_get_irq_handler_data(d);
119 void (*extra_ack)(
void *) = hd;
128 .irq_enable = xlp_pic_enable,
129 .irq_disable = xlp_pic_disable,
130 .irq_mask_ack = xlp_pic_mask_ack,
131 .irq_unmask = xlp_pic_unmask,
134 static void cpuintr_disable(
struct irq_data *d)
143 static void cpuintr_enable(
struct irq_data *d)
152 static void cpuintr_ack(
struct irq_data *d)
159 static void cpuintr_nop(
struct irq_data *d)
169 .name =
"XLP-CPU-INTR",
170 .irq_enable = cpuintr_enable,
171 .irq_disable = cpuintr_disable,
172 .irq_mask = cpuintr_nop,
173 .irq_ack = cpuintr_nop,
174 .irq_eoi = cpuintr_ack,
200 nlm_irq_mask |= (1ULL << irq);
232 i = __ilog2_u64(eirr);