|
@@ -248,6 +248,9 @@ int swsusp_suspend(void)
|
|
|
restore_processor_state();
|
|
|
Restore_highmem:
|
|
|
restore_highmem();
|
|
|
+ /* NOTE: device_power_up() is just a resume() for devices
|
|
|
+ * that suspended with irqs off ... no overall powerup.
|
|
|
+ */
|
|
|
device_power_up();
|
|
|
Enable_irqs:
|
|
|
local_irq_enable();
|
|
@@ -257,8 +260,12 @@ Enable_irqs:
|
|
|
int swsusp_resume(void)
|
|
|
{
|
|
|
int error;
|
|
|
+
|
|
|
local_irq_disable();
|
|
|
- if (device_power_down(PMSG_FREEZE))
|
|
|
+ /* NOTE: device_power_down() is just a suspend() with irqs off;
|
|
|
+ * it has no special "power things down" semantics
|
|
|
+ */
|
|
|
+ if (device_power_down(PMSG_PRETHAW))
|
|
|
printk(KERN_ERR "Some devices failed to power down, very bad\n");
|
|
|
/* We'll ignore saved state, but this gets preempt count (etc) right */
|
|
|
save_processor_state();
|