| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * OMAP4 SMP source file. It contains platform specific functions |
|---|
| 3 | 4 | * needed for the linux smp kernel. |
|---|
| .. | .. |
|---|
| 10 | 11 | * Platform file needed for the OMAP4 SMP. This file is based on arm |
|---|
| 11 | 12 | * realview smp platform. |
|---|
| 12 | 13 | * * Copyright (c) 2002 ARM Limited. |
|---|
| 13 | | - * |
|---|
| 14 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 15 | | - * it under the terms of the GNU General Public License version 2 as |
|---|
| 16 | | - * published by the Free Software Foundation. |
|---|
| 17 | 14 | */ |
|---|
| 18 | 15 | #include <linux/init.h> |
|---|
| 19 | 16 | #include <linux/device.h> |
|---|
| .. | .. |
|---|
| 69 | 66 | .startup_addr = omap5_secondary_startup, |
|---|
| 70 | 67 | }; |
|---|
| 71 | 68 | |
|---|
| 72 | | -static DEFINE_RAW_SPINLOCK(boot_lock); |
|---|
| 73 | | - |
|---|
| 74 | 69 | void __iomem *omap4_get_scu_base(void) |
|---|
| 75 | 70 | { |
|---|
| 76 | 71 | return cfg.scu_base; |
|---|
| 77 | 72 | } |
|---|
| 78 | 73 | |
|---|
| 79 | 74 | #ifdef CONFIG_OMAP5_ERRATA_801819 |
|---|
| 80 | | -void omap5_erratum_workaround_801819(void) |
|---|
| 75 | +static void omap5_erratum_workaround_801819(void) |
|---|
| 81 | 76 | { |
|---|
| 82 | 77 | u32 acr, revidr; |
|---|
| 83 | 78 | u32 acr_mask; |
|---|
| .. | .. |
|---|
| 173 | 168 | /* Enable ACR to allow for ICUALLU workaround */ |
|---|
| 174 | 169 | omap5_secondary_harden_predictor(); |
|---|
| 175 | 170 | } |
|---|
| 176 | | - |
|---|
| 177 | | - /* |
|---|
| 178 | | - * Synchronise with the boot thread. |
|---|
| 179 | | - */ |
|---|
| 180 | | - raw_spin_lock(&boot_lock); |
|---|
| 181 | | - raw_spin_unlock(&boot_lock); |
|---|
| 182 | 171 | } |
|---|
| 183 | 172 | |
|---|
| 184 | 173 | static int omap4_boot_secondary(unsigned int cpu, struct task_struct *idle) |
|---|
| .. | .. |
|---|
| 186 | 175 | static struct clockdomain *cpu1_clkdm; |
|---|
| 187 | 176 | static bool booted; |
|---|
| 188 | 177 | static struct powerdomain *cpu1_pwrdm; |
|---|
| 189 | | - |
|---|
| 190 | | - /* |
|---|
| 191 | | - * Set synchronisation state between this boot processor |
|---|
| 192 | | - * and the secondary one |
|---|
| 193 | | - */ |
|---|
| 194 | | - raw_spin_lock(&boot_lock); |
|---|
| 195 | 178 | |
|---|
| 196 | 179 | /* |
|---|
| 197 | 180 | * Update the AuxCoreBoot0 with boot state for secondary core. |
|---|
| .. | .. |
|---|
| 265 | 248 | } |
|---|
| 266 | 249 | |
|---|
| 267 | 250 | arch_send_wakeup_ipi_mask(cpumask_of(cpu)); |
|---|
| 268 | | - |
|---|
| 269 | | - /* |
|---|
| 270 | | - * Now the secondary core is starting up let it run its |
|---|
| 271 | | - * calibrations, then wait for it to finish |
|---|
| 272 | | - */ |
|---|
| 273 | | - raw_spin_unlock(&boot_lock); |
|---|
| 274 | 251 | |
|---|
| 275 | 252 | return 0; |
|---|
| 276 | 253 | } |
|---|