ARM: exynos: Remove secondary startup initialization from smp_prepare_cpus
authorPankaj Dubey <pankaj.dubey@samsung.com>
Thu, 15 Nov 2018 15:11:30 +0000 (16:11 +0100)
committerKrzysztof Kozlowski <krzk@kernel.org>
Sun, 18 Nov 2018 14:12:50 +0000 (15:12 +0100)
We are taking care of setting secondary cpu boot address in
exynos_boot_secondary just before sending ipi to secondary CPUs,
so we can safely remove this setting from smp_prepare_cpus.

Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
arch/arm/mach-exynos/platsmp.c

index 6a1e682..c39ffd2 100644 (file)
@@ -397,38 +397,12 @@ fail:
 
 static void __init exynos_smp_prepare_cpus(unsigned int max_cpus)
 {
-       int i;
-
        exynos_sysram_init();
 
        exynos_set_delayed_reset_assertion(true);
 
        if (read_cpuid_part() == ARM_CPU_PART_CORTEX_A9)
                exynos_scu_enable();
-
-       /*
-        * Write the address of secondary startup into the
-        * system-wide flags register. The boot monitor waits
-        * until it receives a soft interrupt, and then the
-        * secondary CPU branches to this address.
-        *
-        * Try using firmware operation first and fall back to
-        * boot register if it fails.
-        */
-       for (i = 1; i < max_cpus; ++i) {
-               unsigned long boot_addr;
-               u32 mpidr;
-               u32 core_id;
-               int ret;
-
-               mpidr = cpu_logical_map(i);
-               core_id = MPIDR_AFFINITY_LEVEL(mpidr, 0);
-               boot_addr = __pa_symbol(exynos4_secondary_startup);
-
-               ret = exynos_set_boot_addr(core_id, boot_addr);
-               if (ret)
-                       break;
-       }
 }
 
 #ifdef CONFIG_HOTPLUG_CPU