int __cpuinit scorpion_boot_secondary(unsigned int cpu,
				      struct task_struct *idle)
{
	pr_debug("Starting secondary CPU %d\n", cpu);

	if (per_cpu(cold_boot_done, cpu) == false) {
		scorpion_release_secondary();
		per_cpu(cold_boot_done, cpu) = true;
	}
	return release_from_pen(cpu);
}
static int __cpuinit release_secondary(unsigned int cpu)
{
	BUG_ON(cpu >= get_core_count());

	if (cpu_is_msm8x60())
		return scorpion_release_secondary();

	if (machine_is_msm8960_sim() || machine_is_msm8960_rumi3() ||
	    machine_is_apq8064_sim())
		return krait_release_secondary_sim(cpu);

	if (cpu_is_msm8960() || cpu_is_msm8930() || cpu_is_apq8064())
		return krait_release_secondary(cpu);

	WARN(1, "unknown CPU case in release_secondary\n");
	return -EINVAL;
}
示例#3
0
static int release_secondary(unsigned int cpu)
{
    BUG_ON(cpu >= get_core_count());

    if (cpu_is_msm8x60())
        return scorpion_release_secondary();

    if (machine_is_msm8974_sim())
        return krait_release_secondary_sim(0xf9088000, cpu);

    if (soc_class_is_msm8960() || soc_class_is_msm8930() ||
            soc_class_is_apq8064())
        return krait_release_secondary(0x02088000, cpu);

    if (cpu_is_msm8974())
        return krait_release_secondary_p3(0xf9088000, cpu);

    WARN(1, "unknown CPU case in release_secondary\n");
    return -EINVAL;
}