mirror of
https://github.com/torvalds/linux.git
synced 2024-12-30 14:52:05 +00:00
ca70ea43f8
MCPM does a soft reset of the CPUs and uses common cpu_resume() routine to
perform low-level platform initialization. This results in a try to install
HYP stubs for the second time for each CPU and results in false HYP/SVC
mode mismatch detection. The HYP stubs are already installed at the
beginning of the kernel initialization on the boot CPU (head.S) or in the
secondary_startup() for other CPUs. To fix this issue MCPM code should use
a cpu_resume() routine without HYP stubs installation.
This change fixes HYP/SVC mode mismatch on Samsung Exynos5422-based Odroid
XU3/XU4/HC1 boards.
Fixes: 3721924c81
("ARM: 8081/1: MCPM: provide infrastructure to allow for MCPM loopback")
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Acked-by: Nicolas Pitre <nico@linaro.org>
Tested-by: Anand Moon <linux.amoon@gmail.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
18 lines
369 B
C
18 lines
369 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef __ASM_ARM_SUSPEND_H
|
|
#define __ASM_ARM_SUSPEND_H
|
|
|
|
#include <linux/types.h>
|
|
|
|
struct sleep_save_sp {
|
|
u32 *save_ptr_stash;
|
|
u32 save_ptr_stash_phys;
|
|
};
|
|
|
|
extern void cpu_resume(void);
|
|
extern void cpu_resume_no_hyp(void);
|
|
extern void cpu_resume_arm(void);
|
|
extern int cpu_suspend(unsigned long, int (*)(unsigned long));
|
|
|
|
#endif
|