|
@@ -287,6 +287,8 @@ static int create_image(int platform_mode)
|
|
|
|
|
|
local_irq_disable();
|
|
local_irq_disable();
|
|
|
|
|
|
|
|
+ system_state = SYSTEM_SUSPEND;
|
|
|
|
+
|
|
error = syscore_suspend();
|
|
error = syscore_suspend();
|
|
if (error) {
|
|
if (error) {
|
|
pr_err("Some system devices failed to power down, aborting hibernation\n");
|
|
pr_err("Some system devices failed to power down, aborting hibernation\n");
|
|
@@ -317,6 +319,7 @@ static int create_image(int platform_mode)
|
|
syscore_resume();
|
|
syscore_resume();
|
|
|
|
|
|
Enable_irqs:
|
|
Enable_irqs:
|
|
|
|
+ system_state = SYSTEM_RUNNING;
|
|
local_irq_enable();
|
|
local_irq_enable();
|
|
|
|
|
|
Enable_cpus:
|
|
Enable_cpus:
|
|
@@ -445,6 +448,7 @@ static int resume_target_kernel(bool platform_mode)
|
|
goto Enable_cpus;
|
|
goto Enable_cpus;
|
|
|
|
|
|
local_irq_disable();
|
|
local_irq_disable();
|
|
|
|
+ system_state = SYSTEM_SUSPEND;
|
|
|
|
|
|
error = syscore_suspend();
|
|
error = syscore_suspend();
|
|
if (error)
|
|
if (error)
|
|
@@ -478,6 +482,7 @@ static int resume_target_kernel(bool platform_mode)
|
|
syscore_resume();
|
|
syscore_resume();
|
|
|
|
|
|
Enable_irqs:
|
|
Enable_irqs:
|
|
|
|
+ system_state = SYSTEM_RUNNING;
|
|
local_irq_enable();
|
|
local_irq_enable();
|
|
|
|
|
|
Enable_cpus:
|
|
Enable_cpus:
|
|
@@ -563,6 +568,7 @@ int hibernation_platform_enter(void)
|
|
goto Enable_cpus;
|
|
goto Enable_cpus;
|
|
|
|
|
|
local_irq_disable();
|
|
local_irq_disable();
|
|
|
|
+ system_state = SYSTEM_SUSPEND;
|
|
syscore_suspend();
|
|
syscore_suspend();
|
|
if (pm_wakeup_pending()) {
|
|
if (pm_wakeup_pending()) {
|
|
error = -EAGAIN;
|
|
error = -EAGAIN;
|
|
@@ -575,6 +581,7 @@ int hibernation_platform_enter(void)
|
|
|
|
|
|
Power_up:
|
|
Power_up:
|
|
syscore_resume();
|
|
syscore_resume();
|
|
|
|
+ system_state = SYSTEM_RUNNING;
|
|
local_irq_enable();
|
|
local_irq_enable();
|
|
|
|
|
|
Enable_cpus:
|
|
Enable_cpus:
|