Dear All, This patchset is a result of my recent works on fixing system suspend/resume on Exynos5422-based Odroid XU3/XU4 boards running under secure firmware. The initial work has been done some time ago by Joonyoung Shim, who noticed the missing secure monitor calls during suspend/resume operation. However that was not enough to make suspend/resume stable. Typically 1 out of 10 cycles ended in a freeze during suspend. Also enabling performance events in kernel configuration mysteriously broke suspend/resume operation. The first issue (random freeze) has been recently fixed by Stuart Menefy in Exynos MultiCore Timer patches initially posted in the "Resuscitate Exynos 5260 support" thread: https://patchwork.kernel.org/patch/10804959/ https://patchwork.kernel.org/patch/10804961/ The second issue turned out to be ralated to the incorrect debug status control register (DSCR) state in the system resume. The last patch provides a workaround for that issues. This patchset has been tested on top of linux-next from 20190218 on the following boards: - Odroid XU3 (Exynos5422, secure firmware) - Odroid XU3-lite (Exynos5422, secure firmware, no ARM PMU available) - Odroid XU4 (Exynos5422, secure firmware) - Odroid HC1 (Exynos5422, secure firmware) - Chromebook2 Peach-Pit (Exynos5420, no secure firmware) - Chromebook2 Peach-Pi (Exynos5800, no secure firmware) On all above boards the system suspend/resume works fine now. There are a few minor issues in some device drivers that triggers kernel warning during the suspend/resume cycle, but they are not critical for the stability. Most of them has been reported to respective maintainers so far. Best regards Marek Szyprowski Samsung R&D Institute Poland Patch summary: Marek Szyprowski (4): ARM: exynos: Move Exynos542x CPU state reset to pm_prepare() ARM: exynos: Add Exynos SMC values for secure memory write ARM: exynos: Add CPU state management for Exynos542x under secure firmware ARM: exynos: Fix undefined instruction during Exynos5422 resume arch/arm/mach-exynos/common.h | 1 + arch/arm/mach-exynos/exynos.c | 3 +++ arch/arm/mach-exynos/smc.h | 7 ++++++ arch/arm/mach-exynos/suspend.c | 39 ++++++++++++++++++++++++++++++---- 4 files changed, 46 insertions(+), 4 deletions(-) -- 2.17.1