Index: to-merge/arch/powerpc/platforms/maple/setup.c =================================================================== --- to-merge.orig/arch/powerpc/platforms/maple/setup.c +++ to-merge/arch/powerpc/platforms/maple/setup.c @@ -216,6 +216,7 @@ static void __init maple_init_IRQ(void) int naddr, n, i, opplen, has_isus = 0; struct mpic *mpic; unsigned int flags = MPIC_PRIMARY; + char *typep; /* Locate MPIC in the device-tree. Note that there is a bug * in Maple device-tree where the type of the controller is @@ -226,9 +227,19 @@ static void __init maple_init_IRQ(void) break; } if (mpic_node == NULL) { - printk(KERN_ERR - "Failed to locate the MPIC interrupt controller\n"); - return; + for_each_node_by_type(np, "interrupt-controller") { + typep = (char *)get_property(np, "compatible", NULL); + if (strstr(typep, "open-pic")) { + mpic_node = np; + break; + } + } + + if (mpic_node == NULL) { + printk(KERN_ERR "Failed to locate the MPIC interrupt " + "controller\n"); + return; + } } /* Find address list in /platform-open-pic */