smp.c (3a37471551cd3b287ce7f02ed25bcf8ec37a191d) smp.c (b866cc2199d6a6cdcefe4acfe4cfca3ac3c6d38e)
1/*
2 * Author: Andy Fleming <afleming@freescale.com>
3 * Kumar Gala <galak@kernel.crashing.org>
4 *
5 * Copyright 2006-2008, 2011-2012, 2015 Freescale Semiconductor Inc.
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the

--- 447 unchanged lines hidden (view full) ---

456 mpic_reset_core(i);
457 }
458#endif
459
460 default_machine_kexec(image);
461}
462#endif /* CONFIG_KEXEC_CORE */
463
1/*
2 * Author: Andy Fleming <afleming@freescale.com>
3 * Kumar Gala <galak@kernel.crashing.org>
4 *
5 * Copyright 2006-2008, 2011-2012, 2015 Freescale Semiconductor Inc.
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the

--- 447 unchanged lines hidden (view full) ---

456 mpic_reset_core(i);
457 }
458#endif
459
460 default_machine_kexec(image);
461}
462#endif /* CONFIG_KEXEC_CORE */
463
464static void smp_85xx_basic_setup(int cpu_nr)
465{
466 if (cpu_has_feature(CPU_FTR_DBELL))
467 doorbell_setup_this_cpu();
468}
469
470static void smp_85xx_setup_cpu(int cpu_nr)
471{
472 mpic_setup_this_cpu();
464static void smp_85xx_setup_cpu(int cpu_nr)
465{
466 mpic_setup_this_cpu();
473 smp_85xx_basic_setup(cpu_nr);
474}
475
476void __init mpc85xx_smp_init(void)
477{
478 struct device_node *np;
479
480
481 np = of_find_node_by_type(NULL, "open-pic");
482 if (np) {
483 smp_85xx_ops.probe = smp_mpic_probe;
484 smp_85xx_ops.setup_cpu = smp_85xx_setup_cpu;
485 smp_85xx_ops.message_pass = smp_mpic_message_pass;
486 } else
467}
468
469void __init mpc85xx_smp_init(void)
470{
471 struct device_node *np;
472
473
474 np = of_find_node_by_type(NULL, "open-pic");
475 if (np) {
476 smp_85xx_ops.probe = smp_mpic_probe;
477 smp_85xx_ops.setup_cpu = smp_85xx_setup_cpu;
478 smp_85xx_ops.message_pass = smp_mpic_message_pass;
479 } else
487 smp_85xx_ops.setup_cpu = smp_85xx_basic_setup;
480 smp_85xx_ops.setup_cpu = NULL;
488
489 if (cpu_has_feature(CPU_FTR_DBELL)) {
490 /*
491 * If left NULL, .message_pass defaults to
492 * smp_muxed_ipi_message_pass
493 */
494 smp_85xx_ops.message_pass = NULL;
481
482 if (cpu_has_feature(CPU_FTR_DBELL)) {
483 /*
484 * If left NULL, .message_pass defaults to
485 * smp_muxed_ipi_message_pass
486 */
487 smp_85xx_ops.message_pass = NULL;
495 smp_85xx_ops.cause_ipi = doorbell_cause_ipi;
488 smp_85xx_ops.cause_ipi = doorbell_global_ipi;
496 smp_85xx_ops.probe = NULL;
497 }
498
499#ifdef CONFIG_HOTPLUG_CPU
500#ifdef CONFIG_FSL_CORENET_RCPM
501 fsl_rcpm_init();
502#endif
503

--- 17 unchanged lines hidden ---
489 smp_85xx_ops.probe = NULL;
490 }
491
492#ifdef CONFIG_HOTPLUG_CPU
493#ifdef CONFIG_FSL_CORENET_RCPM
494 fsl_rcpm_init();
495#endif
496

--- 17 unchanged lines hidden ---