12 #include <linux/types.h>
27 static char lc0msk_to_irqnr[256];
28 static char lc1msk_to_irqnr[256];
29 static char lc2msk_to_irqnr[256];
30 static char lc3msk_to_irqnr[256];
34 static void enable_local0_irq(
struct irq_data *
d)
42 static void disable_local0_irq(
struct irq_data *d)
47 static struct irq_chip ip22_local0_irq_type = {
48 .name =
"IP22 local 0",
49 .irq_mask = disable_local0_irq,
50 .irq_unmask = enable_local0_irq,
53 static void enable_local1_irq(
struct irq_data *d)
61 static void disable_local1_irq(
struct irq_data *d)
66 static struct irq_chip ip22_local1_irq_type = {
67 .name =
"IP22 local 1",
68 .irq_mask = disable_local1_irq,
69 .irq_unmask = enable_local1_irq,
72 static void enable_local2_irq(
struct irq_data *d)
78 static void disable_local2_irq(
struct irq_data *d)
85 static struct irq_chip ip22_local2_irq_type = {
86 .name =
"IP22 local 2",
87 .irq_mask = disable_local2_irq,
88 .irq_unmask = enable_local2_irq,
91 static void enable_local3_irq(
struct irq_data *d)
97 static void disable_local3_irq(
struct irq_data *d)
104 static struct irq_chip ip22_local3_irq_type = {
105 .name =
"IP22 local 3",
106 .irq_mask = disable_local3_irq,
107 .irq_unmask = enable_local3_irq,
110 static void indy_local0_irqdispatch(
void)
118 irq = lc2msk_to_irqnr[mask2];
120 irq = lc0msk_to_irqnr[
mask];
127 static void indy_local1_irqdispatch(
void)
135 irq = lc3msk_to_irqnr[mask2];
137 irq = lc1msk_to_irqnr[
mask];
156 static struct irqaction local0_cascade = {
159 .name =
"local0 cascade",
162 static struct irqaction local1_cascade = {
165 .name =
"local1 cascade",
177 .name =
"mapable0 cascade",
184 .name =
"mapable1 cascade",
186 #define SGI_INTERRUPTS SGINT_END
188 #define SGI_INTERRUPTS SGINT_LOCAL3
231 indy_local0_irqdispatch();
233 indy_local1_irqdispatch();
245 for (i = 0; i < 256; i++) {
251 }
else if (i & 0x40) {
256 }
else if (i & 0x20) {
261 }
else if (i & 0x10) {
266 }
else if (i & 0x08) {
271 }
else if (i & 0x04) {
276 }
else if (i & 0x02) {
281 }
else if (i & 0x01) {
287 lc0msk_to_irqnr[
i] = 0;
288 lc1msk_to_irqnr[
i] = 0;
289 lc2msk_to_irqnr[
i] = 0;
290 lc3msk_to_irqnr[
i] = 0;
307 handler = &ip22_local0_irq_type;
309 handler = &ip22_local1_irq_type;
311 handler = &ip22_local2_irq_type;
313 handler = &ip22_local3_irq_type;