local_irq_disable();
+ system_state = SYSTEM_SUSPEND;
+
error = syscore_suspend();
if (error) {
printk(KERN_ERR "PM: Some system devices failed to power down, "
Enable_irqs:
clockevents_notify(CLOCK_EVT_NOTIFY_RESUME, NULL);
+ system_state = SYSTEM_RUNNING;
local_irq_enable();
Enable_cpus:
clockevents_notify(CLOCK_EVT_NOTIFY_SUSPEND, NULL);
local_irq_disable();
+ system_state = SYSTEM_SUSPEND;
error = syscore_suspend();
if (error)
Enable_irqs:
clockevents_notify(CLOCK_EVT_NOTIFY_RESUME, NULL);
+ system_state = SYSTEM_RUNNING;
local_irq_enable();
Enable_cpus:
clockevents_notify(CLOCK_EVT_NOTIFY_SUSPEND, NULL);
local_irq_disable();
+ system_state = SYSTEM_SUSPEND;
syscore_suspend();
if (pm_wakeup_pending()) {
error = -EAGAIN;
Power_up:
syscore_resume();
clockevents_notify(CLOCK_EVT_NOTIFY_RESUME, NULL);
+ system_state = SYSTEM_RUNNING;
local_irq_enable();
enable_nonboot_cpus();