Example #1
0
static int _suspend_enter(suspend_state_t state)
{
	int error = 0;

	arch_suspend_disable_irqs();
	BUG_ON(!irqs_disabled());
	if ((error = device_power_down(PMSG_SUSPEND))) {
		printk(KERN_ERR "PM: Some devices failed to power down\n");
		goto Done;
	}

	error = sysdev_suspend(PMSG_SUSPEND);
	if (!error) {
		if (!suspend_test(TEST_CORE))
			error = suspend_ops->enter(state);
		sysdev_resume();
	}

	device_power_up(PMSG_RESUME);
 Done:

#ifdef CONFIG_QUICK_WAKEUP
	quickwakeup_check();
#endif
	arch_suspend_enable_irqs();
	BUG_ON(irqs_disabled());
	return error;
}
Example #2
0
static int _suspend_enter(suspend_state_t state)
{
	int error;
	arch_suspend_disable_irqs();
	BUG_ON(!irqs_disabled());

	error = sysdev_suspend(PMSG_SUSPEND);
	if (!error) {
		if (!suspend_test(TEST_CORE))
			error = suspend_ops->enter(state);
		sysdev_resume();
	}
	if (!error) {
#ifdef CONFIG_QUICK_WAKEUP
		quickwakeup_check();
#endif
	}
	arch_suspend_enable_irqs();
	BUG_ON(irqs_disabled());
	return error;
}