diff options
Diffstat (limited to 'arch/powerpc/platforms/chrp/setup.c')
-rw-r--r-- | arch/powerpc/platforms/chrp/setup.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/chrp/setup.c b/arch/powerpc/platforms/chrp/setup.c index 1f1771b212b4..a5dffc8d93a9 100644 --- a/arch/powerpc/platforms/chrp/setup.c +++ b/arch/powerpc/platforms/chrp/setup.c | |||
@@ -315,6 +315,21 @@ chrp_event_scan(unsigned long unused) | |||
315 | jiffies + event_scan_interval); | 315 | jiffies + event_scan_interval); |
316 | } | 316 | } |
317 | 317 | ||
318 | void chrp_8259_cascade(unsigned int irq, struct irq_desc *desc, | ||
319 | struct pt_regs *regs) | ||
320 | { | ||
321 | unsigned int max = 100; | ||
322 | |||
323 | while(max--) { | ||
324 | int irq = i8259_irq(regs); | ||
325 | if (max == 99) | ||
326 | desc->chip->eoi(irq); | ||
327 | if (irq < 0) | ||
328 | break; | ||
329 | generic_handle_irq(irq, regs); | ||
330 | }; | ||
331 | } | ||
332 | |||
318 | /* | 333 | /* |
319 | * Finds the open-pic node and sets up the mpic driver. | 334 | * Finds the open-pic node and sets up the mpic driver. |
320 | */ | 335 | */ |
@@ -402,7 +417,7 @@ static void __init chrp_find_openpic(void) | |||
402 | } | 417 | } |
403 | 418 | ||
404 | mpic_init(chrp_mpic); | 419 | mpic_init(chrp_mpic); |
405 | mpic_setup_cascade(NUM_ISA_INTERRUPTS, i8259_irq_cascade, NULL); | 420 | set_irq_chained_handler(NUM_ISA_INTERRUPTS, chrp_8259_cascade); |
406 | } | 421 | } |
407 | 422 | ||
408 | #if defined(CONFIG_VT) && defined(CONFIG_INPUT_ADBHID) && defined(XMON) | 423 | #if defined(CONFIG_VT) && defined(CONFIG_INPUT_ADBHID) && defined(XMON) |