summaryrefslogtreecommitdiff
path: root/arch/arm/mach-exynos/platsmp.c
diff options
context:
space:
mode:
authorYoshinori Sato <ysato@users.sourceforge.jp>2019-06-02 15:46:11 +0900
committerYoshinori Sato <ysato@users.sourceforge.jp>2019-06-02 15:46:11 +0900
commit860dbce3d8dd90cb9e909c58fa79808766243651 (patch)
treef68920c82fa779ae37bbce08a58259e5c3934ab3 /arch/arm/mach-exynos/platsmp.c
parent1b496469d0c020e09124e03e66a81421c21272a7 (diff)
parent3ab4436f688c2d2f221793953cd05435ca84261c (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
Diffstat (limited to 'arch/arm/mach-exynos/platsmp.c')
-rw-r--r--arch/arm/mach-exynos/platsmp.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c
index abcac6164233..0cbbae8bf1f8 100644
--- a/arch/arm/mach-exynos/platsmp.c
+++ b/arch/arm/mach-exynos/platsmp.c
@@ -214,13 +214,20 @@ static inline void __iomem *cpu_boot_reg(int cpu)
*/
void exynos_core_restart(u32 core_id)
{
+ unsigned int timeout = 16;
u32 val;
if (!of_machine_is_compatible("samsung,exynos3250"))
return;
- while (!pmu_raw_readl(S5P_PMU_SPARE2))
+ while (timeout && !pmu_raw_readl(S5P_PMU_SPARE2)) {
+ timeout--;
udelay(10);
+ }
+ if (timeout == 0) {
+ pr_err("cpu core %u restart failed\n", core_id);
+ return;
+ }
udelay(10);
val = pmu_raw_readl(EXYNOS_ARM_CORE_STATUS(core_id));