Loading drivers/base/power/main.c +4 −0 Original line number Diff line number Diff line Loading @@ -357,6 +357,7 @@ static void dpm_power_up(pm_message_t state) { struct device *dev; mutex_lock(&dpm_list_mtx); list_for_each_entry(dev, &dpm_list, power.entry) if (dev->power.status > DPM_OFF) { int error; Loading @@ -366,6 +367,7 @@ static void dpm_power_up(pm_message_t state) if (error) pm_dev_err(dev, state, " early", error); } mutex_unlock(&dpm_list_mtx); } /** Loading Loading @@ -614,6 +616,7 @@ int device_power_down(pm_message_t state) int error = 0; suspend_device_irqs(); mutex_lock(&dpm_list_mtx); list_for_each_entry_reverse(dev, &dpm_list, power.entry) { error = suspend_device_noirq(dev, state); if (error) { Loading @@ -622,6 +625,7 @@ int device_power_down(pm_message_t state) } dev->power.status = DPM_OFF_IRQ; } mutex_unlock(&dpm_list_mtx); if (error) device_power_up(resume_event(state)); return error; Loading kernel/kexec.c +0 −2 Original line number Diff line number Diff line Loading @@ -1451,7 +1451,6 @@ int kernel_kexec(void) error = device_suspend(PMSG_FREEZE); if (error) goto Resume_console; device_pm_lock(); /* At this point, device_suspend() has been called, * but *not* device_power_down(). We *must* * device_power_down() now. Otherwise, drivers for Loading Loading @@ -1489,7 +1488,6 @@ int kernel_kexec(void) enable_nonboot_cpus(); device_power_up(PMSG_RESTORE); Resume_devices: device_pm_unlock(); device_resume(PMSG_RESTORE); Resume_console: resume_console(); Loading kernel/power/disk.c +3 −18 Original line number Diff line number Diff line Loading @@ -215,8 +215,6 @@ static int create_image(int platform_mode) if (error) return error; device_pm_lock(); /* At this point, device_suspend() has been called, but *not* * device_power_down(). We *must* call device_power_down() now. * Otherwise, drivers for some devices (e.g. interrupt controllers) Loading @@ -227,7 +225,7 @@ static int create_image(int platform_mode) if (error) { printk(KERN_ERR "PM: Some devices failed to power down, " "aborting hibernation\n"); goto Unlock; return error; } error = platform_pre_snapshot(platform_mode); Loading Loading @@ -280,9 +278,6 @@ static int create_image(int platform_mode) device_power_up(in_suspend ? (error ? PMSG_RECOVER : PMSG_THAW) : PMSG_RESTORE); Unlock: device_pm_unlock(); return error; } Loading Loading @@ -344,13 +339,11 @@ static int resume_target_kernel(bool platform_mode) { int error; device_pm_lock(); error = device_power_down(PMSG_QUIESCE); if (error) { printk(KERN_ERR "PM: Some devices failed to power down, " "aborting resume\n"); goto Unlock; return error; } error = platform_pre_restore(platform_mode); Loading Loading @@ -403,9 +396,6 @@ static int resume_target_kernel(bool platform_mode) device_power_up(PMSG_RECOVER); Unlock: device_pm_unlock(); return error; } Loading Loading @@ -464,11 +454,9 @@ int hibernation_platform_enter(void) goto Resume_devices; } device_pm_lock(); error = device_power_down(PMSG_HIBERNATE); if (error) goto Unlock; goto Resume_devices; error = hibernation_ops->prepare(); if (error) Loading @@ -493,9 +481,6 @@ int hibernation_platform_enter(void) device_power_up(PMSG_RESTORE); Unlock: device_pm_unlock(); Resume_devices: entering_platform_hibernation = false; device_resume(PMSG_RESTORE); Loading kernel/power/main.c +1 −6 Original line number Diff line number Diff line Loading @@ -289,12 +289,10 @@ static int suspend_enter(suspend_state_t state) { int error; device_pm_lock(); if (suspend_ops->prepare) { error = suspend_ops->prepare(); if (error) goto Done; return error; } error = device_power_down(PMSG_SUSPEND); Loading Loading @@ -343,9 +341,6 @@ static int suspend_enter(suspend_state_t state) if (suspend_ops->finish) suspend_ops->finish(); Done: device_pm_unlock(); return error; } Loading Loading
drivers/base/power/main.c +4 −0 Original line number Diff line number Diff line Loading @@ -357,6 +357,7 @@ static void dpm_power_up(pm_message_t state) { struct device *dev; mutex_lock(&dpm_list_mtx); list_for_each_entry(dev, &dpm_list, power.entry) if (dev->power.status > DPM_OFF) { int error; Loading @@ -366,6 +367,7 @@ static void dpm_power_up(pm_message_t state) if (error) pm_dev_err(dev, state, " early", error); } mutex_unlock(&dpm_list_mtx); } /** Loading Loading @@ -614,6 +616,7 @@ int device_power_down(pm_message_t state) int error = 0; suspend_device_irqs(); mutex_lock(&dpm_list_mtx); list_for_each_entry_reverse(dev, &dpm_list, power.entry) { error = suspend_device_noirq(dev, state); if (error) { Loading @@ -622,6 +625,7 @@ int device_power_down(pm_message_t state) } dev->power.status = DPM_OFF_IRQ; } mutex_unlock(&dpm_list_mtx); if (error) device_power_up(resume_event(state)); return error; Loading
kernel/kexec.c +0 −2 Original line number Diff line number Diff line Loading @@ -1451,7 +1451,6 @@ int kernel_kexec(void) error = device_suspend(PMSG_FREEZE); if (error) goto Resume_console; device_pm_lock(); /* At this point, device_suspend() has been called, * but *not* device_power_down(). We *must* * device_power_down() now. Otherwise, drivers for Loading Loading @@ -1489,7 +1488,6 @@ int kernel_kexec(void) enable_nonboot_cpus(); device_power_up(PMSG_RESTORE); Resume_devices: device_pm_unlock(); device_resume(PMSG_RESTORE); Resume_console: resume_console(); Loading
kernel/power/disk.c +3 −18 Original line number Diff line number Diff line Loading @@ -215,8 +215,6 @@ static int create_image(int platform_mode) if (error) return error; device_pm_lock(); /* At this point, device_suspend() has been called, but *not* * device_power_down(). We *must* call device_power_down() now. * Otherwise, drivers for some devices (e.g. interrupt controllers) Loading @@ -227,7 +225,7 @@ static int create_image(int platform_mode) if (error) { printk(KERN_ERR "PM: Some devices failed to power down, " "aborting hibernation\n"); goto Unlock; return error; } error = platform_pre_snapshot(platform_mode); Loading Loading @@ -280,9 +278,6 @@ static int create_image(int platform_mode) device_power_up(in_suspend ? (error ? PMSG_RECOVER : PMSG_THAW) : PMSG_RESTORE); Unlock: device_pm_unlock(); return error; } Loading Loading @@ -344,13 +339,11 @@ static int resume_target_kernel(bool platform_mode) { int error; device_pm_lock(); error = device_power_down(PMSG_QUIESCE); if (error) { printk(KERN_ERR "PM: Some devices failed to power down, " "aborting resume\n"); goto Unlock; return error; } error = platform_pre_restore(platform_mode); Loading Loading @@ -403,9 +396,6 @@ static int resume_target_kernel(bool platform_mode) device_power_up(PMSG_RECOVER); Unlock: device_pm_unlock(); return error; } Loading Loading @@ -464,11 +454,9 @@ int hibernation_platform_enter(void) goto Resume_devices; } device_pm_lock(); error = device_power_down(PMSG_HIBERNATE); if (error) goto Unlock; goto Resume_devices; error = hibernation_ops->prepare(); if (error) Loading @@ -493,9 +481,6 @@ int hibernation_platform_enter(void) device_power_up(PMSG_RESTORE); Unlock: device_pm_unlock(); Resume_devices: entering_platform_hibernation = false; device_resume(PMSG_RESTORE); Loading
kernel/power/main.c +1 −6 Original line number Diff line number Diff line Loading @@ -289,12 +289,10 @@ static int suspend_enter(suspend_state_t state) { int error; device_pm_lock(); if (suspend_ops->prepare) { error = suspend_ops->prepare(); if (error) goto Done; return error; } error = device_power_down(PMSG_SUSPEND); Loading Loading @@ -343,9 +341,6 @@ static int suspend_enter(suspend_state_t state) if (suspend_ops->finish) suspend_ops->finish(); Done: device_pm_unlock(); return error; } Loading