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;
}
Ejemplo n.º 2
0
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;
}