static irqreturn_t cpm2_cascade(int irq, void *dev_id, struct pt_regs *regs)
{
- while ((irq = cpm2_get_irq(regs)) >= 0)
- __do_IRQ(irq, regs);
+ while ((irq = cpm2_get_irq(regs)) >= 0) {
+ ppc_irq_dispatch_handler(regs, irq);
+ }
return IRQ_HANDLED;
}
-static struct irqaction cpm2_irqaction = {
- .handler = cpm2_cascade,
- .flags = SA_INTERRUPT,
- .mask = CPU_MASK_NONE,
- .name = "cpm2_cascade",
-};
-
static void __init
mpc8560_ads_init_IRQ(void)
{
immap->im_intctl.ic_scprrh = 0x05309770;
immap->im_intctl.ic_scprrl = 0x05309770;
- setup_irq(MPC85xx_IRQ_CPM, &cpm2_irqaction);
+ request_irq(MPC85xx_IRQ_CPM, cpm2_cascade, SA_INTERRUPT, "cpm2_cascade", NULL);
return;
}