smp.c (cdd5b5a9761fd66d17586e4f4ba6588c70e640ea) smp.c (8cd2accb71f5eb8e92d775fc1978d3779875c2e5)
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 2004-2008, 2009, 2010 Cavium Networks
7 */
8#include <linux/cpu.h>

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

417 .smp_finish = octeon_smp_finish,
418 .boot_secondary = octeon_boot_secondary,
419 .smp_setup = octeon_smp_setup,
420 .prepare_cpus = octeon_prepare_cpus,
421#ifdef CONFIG_HOTPLUG_CPU
422 .cpu_disable = octeon_cpu_disable,
423 .cpu_die = octeon_cpu_die,
424#endif
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 2004-2008, 2009, 2010 Cavium Networks
7 */
8#include <linux/cpu.h>

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

417 .smp_finish = octeon_smp_finish,
418 .boot_secondary = octeon_boot_secondary,
419 .smp_setup = octeon_smp_setup,
420 .prepare_cpus = octeon_prepare_cpus,
421#ifdef CONFIG_HOTPLUG_CPU
422 .cpu_disable = octeon_cpu_disable,
423 .cpu_die = octeon_cpu_die,
424#endif
425#ifdef CONFIG_KEXEC
425#ifdef CONFIG_KEXEC_CORE
426 .kexec_nonboot_cpu = kexec_nonboot_cpu_jump,
427#endif
428};
429
430static irqreturn_t octeon_78xx_reched_interrupt(int irq, void *dev_id)
431{
432 scheduler_ipi();
433 return IRQ_HANDLED;

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

497 .smp_finish = octeon_smp_finish,
498 .boot_secondary = octeon_boot_secondary,
499 .smp_setup = octeon_smp_setup,
500 .prepare_cpus = octeon_78xx_prepare_cpus,
501#ifdef CONFIG_HOTPLUG_CPU
502 .cpu_disable = octeon_cpu_disable,
503 .cpu_die = octeon_cpu_die,
504#endif
426 .kexec_nonboot_cpu = kexec_nonboot_cpu_jump,
427#endif
428};
429
430static irqreturn_t octeon_78xx_reched_interrupt(int irq, void *dev_id)
431{
432 scheduler_ipi();
433 return IRQ_HANDLED;

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

497 .smp_finish = octeon_smp_finish,
498 .boot_secondary = octeon_boot_secondary,
499 .smp_setup = octeon_smp_setup,
500 .prepare_cpus = octeon_78xx_prepare_cpus,
501#ifdef CONFIG_HOTPLUG_CPU
502 .cpu_disable = octeon_cpu_disable,
503 .cpu_die = octeon_cpu_die,
504#endif
505#ifdef CONFIG_KEXEC
505#ifdef CONFIG_KEXEC_CORE
506 .kexec_nonboot_cpu = kexec_nonboot_cpu_jump,
507#endif
508};
509
510void __init octeon_setup_smp(void)
511{
512 const struct plat_smp_ops *ops;
513
514 if (octeon_has_feature(OCTEON_FEATURE_CIU3))
515 ops = &octeon_78xx_smp_ops;
516 else
517 ops = &octeon_smp_ops;
518
519 register_smp_ops(ops);
520}
506 .kexec_nonboot_cpu = kexec_nonboot_cpu_jump,
507#endif
508};
509
510void __init octeon_setup_smp(void)
511{
512 const struct plat_smp_ops *ops;
513
514 if (octeon_has_feature(OCTEON_FEATURE_CIU3))
515 ops = &octeon_78xx_smp_ops;
516 else
517 ops = &octeon_smp_ops;
518
519 register_smp_ops(ops);
520}