diff options
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/platforms/pseries/xics.c | 27 |
1 files changed, 1 insertions, 26 deletions
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c index 485cb399b837..9ecf75fe9b14 100644 --- a/arch/powerpc/platforms/pseries/xics.c +++ b/arch/powerpc/platforms/pseries/xics.c | |||
@@ -658,31 +658,6 @@ static void __init xics_setup_8259_cascade(void) | |||
658 | set_irq_chained_handler(cascade, pseries_8259_cascade); | 658 | set_irq_chained_handler(cascade, pseries_8259_cascade); |
659 | } | 659 | } |
660 | 660 | ||
661 | static struct device_node *cpuid_to_of_node(int cpu) | ||
662 | { | ||
663 | struct device_node *np; | ||
664 | u32 hcpuid = get_hard_smp_processor_id(cpu); | ||
665 | |||
666 | for_each_node_by_type(np, "cpu") { | ||
667 | int i, len; | ||
668 | const u32 *intserv; | ||
669 | |||
670 | intserv = of_get_property(np, "ibm,ppc-interrupt-server#s", | ||
671 | &len); | ||
672 | |||
673 | if (!intserv) | ||
674 | intserv = of_get_property(np, "reg", &len); | ||
675 | |||
676 | i = len / sizeof(u32); | ||
677 | |||
678 | while (i--) | ||
679 | if (intserv[i] == hcpuid) | ||
680 | return np; | ||
681 | } | ||
682 | |||
683 | return NULL; | ||
684 | } | ||
685 | |||
686 | void __init xics_init_IRQ(void) | 661 | void __init xics_init_IRQ(void) |
687 | { | 662 | { |
688 | int i, j; | 663 | int i, j; |
@@ -711,7 +686,7 @@ void __init xics_init_IRQ(void) | |||
711 | xics_init_host(); | 686 | xics_init_host(); |
712 | 687 | ||
713 | /* Find the server numbers for the boot cpu. */ | 688 | /* Find the server numbers for the boot cpu. */ |
714 | np = cpuid_to_of_node(boot_cpuid); | 689 | np = of_get_cpu_node(boot_cpuid, NULL); |
715 | BUG_ON(!np); | 690 | BUG_ON(!np); |
716 | ireg = of_get_property(np, "ibm,ppc-interrupt-gserver#s", &ilen); | 691 | ireg = of_get_property(np, "ibm,ppc-interrupt-gserver#s", &ilen); |
717 | if (!ireg) | 692 | if (!ireg) |