|
@@ -549,32 +549,6 @@ callbacks. The other platforms need not implement it or take it into account
|
|
|
in any way.
|
|
|
|
|
|
|
|
|
-System Devices
|
|
|
---------------
|
|
|
-System devices (sysdevs) follow a slightly different API, which can be found in
|
|
|
-
|
|
|
- include/linux/sysdev.h
|
|
|
- drivers/base/sys.c
|
|
|
-
|
|
|
-System devices will be suspended with interrupts disabled, and after all other
|
|
|
-devices have been suspended. On resume, they will be resumed before any other
|
|
|
-devices, and also with interrupts disabled. These things occur in special
|
|
|
-"sysdev_driver" phases, which affect only system devices.
|
|
|
-
|
|
|
-Thus, after the suspend_noirq (or freeze_noirq or poweroff_noirq) phase, when
|
|
|
-the non-boot CPUs are all offline and IRQs are disabled on the remaining online
|
|
|
-CPU, then a sysdev_driver.suspend phase is carried out, and the system enters a
|
|
|
-sleep state (or a system image is created). During resume (or after the image
|
|
|
-has been created or loaded) a sysdev_driver.resume phase is carried out, IRQs
|
|
|
-are enabled on the only online CPU, the non-boot CPUs are enabled, and the
|
|
|
-resume_noirq (or thaw_noirq or restore_noirq) phase begins.
|
|
|
-
|
|
|
-Code to actually enter and exit the system-wide low power state sometimes
|
|
|
-involves hardware details that are only known to the boot firmware, and
|
|
|
-may leave a CPU running software (from SRAM or flash memory) that monitors
|
|
|
-the system and manages its wakeup sequence.
|
|
|
-
|
|
|
-
|
|
|
Device Low Power (suspend) States
|
|
|
---------------------------------
|
|
|
Device low-power states aren't standard. One device might only handle
|