static void exynos_pm_resume(void) { bool early_wakeup = exynos_sys_powerdown_enabled(); exynos_wakeup_sys_powerdown(cp_call_mode? SYS_CP_CALL : SYS_DSTOP, early_wakeup); exynos_pm_boot_flag(false); exynos_show_wakeup_reason(); return; }
static int exynos_enter_lpm(struct cpuidle_device *dev, struct cpuidle_driver *drv, int index) { int ret, mode, sub_state = 0;; mode = determine_lpm(); prepare_idle(dev->cpu); exynos_prepare_sys_powerdown(mode); sub_state = mode << LPM_SUB_STATE_OFFSET; cpuidle_profile_start(dev->cpu, index | sub_state); ret = cpu_suspend(index); cpuidle_profile_finish(dev->cpu, ret); exynos_wakeup_sys_powerdown(mode, (bool)ret); post_idle(dev->cpu); return index; }