[power] Improve device suspend/resume sequence.
- Split calls into - device_pm_suspend() [ Saving device state. ] - device_pm_power_down() [ Powering devices down. ] - device_pm_power_up() [ Powering devices up. ] - device_pm_resume() [ Restoring device state. ] - Walk local dpm_active list when suspending devices, and move devices to dpm_suspended list when ->suspend() is called. - Walk dpm_suspended list to power down devices (with interrrupts enabled.) - Try to power down devices with IRQs on. - If they succeed, move them to dpm_off list. - If they return -EAGAIN, move them to dpm_off_irq list. - Disable interrupts and suspend devices needed interrupts off. - Do converse on resume - power on devices that need interrupts off and move them to dpm_suspended. - Enable interrupts. - Power on all other devices and move them to dpm_suspended. - Restore state of all devices and move them to dpm_active.
Showing
drivers/base/power/power.h
0 → 100644
Please register or sign in to comment