|
@@ -273,8 +273,11 @@ static int create_image(int platform_mode)
|
|
local_irq_disable();
|
|
local_irq_disable();
|
|
|
|
|
|
error = sysdev_suspend(PMSG_FREEZE);
|
|
error = sysdev_suspend(PMSG_FREEZE);
|
|
- if (!error)
|
|
|
|
|
|
+ if (!error) {
|
|
error = syscore_suspend();
|
|
error = syscore_suspend();
|
|
|
|
+ if (error)
|
|
|
|
+ sysdev_resume();
|
|
|
|
+ }
|
|
if (error) {
|
|
if (error) {
|
|
printk(KERN_ERR "PM: Some system devices failed to power down, "
|
|
printk(KERN_ERR "PM: Some system devices failed to power down, "
|
|
"aborting hibernation\n");
|
|
"aborting hibernation\n");
|
|
@@ -407,8 +410,11 @@ static int resume_target_kernel(bool platform_mode)
|
|
local_irq_disable();
|
|
local_irq_disable();
|
|
|
|
|
|
error = sysdev_suspend(PMSG_QUIESCE);
|
|
error = sysdev_suspend(PMSG_QUIESCE);
|
|
- if (!error)
|
|
|
|
|
|
+ if (!error) {
|
|
error = syscore_suspend();
|
|
error = syscore_suspend();
|
|
|
|
+ if (error)
|
|
|
|
+ sysdev_resume();
|
|
|
|
+ }
|
|
if (error)
|
|
if (error)
|
|
goto Enable_irqs;
|
|
goto Enable_irqs;
|
|
|
|
|