| /kernel/linux/linux-6.6/Documentation/admin-guide/pm/ |
| D | suspend-flows.rst | 1 .. SPDX-License-Identifier: GPL-2.0 5 System Suspend Code Flows 12 At least one global system-wide transition needs to be carried out for the 13 system to get from the working state into one of the supported 14 :doc:`sleep states <sleep-states>`. Hibernation requires more than one 15 transition to occur for this purpose, but the other sleep states, commonly 16 referred to as *system-wide suspend* (or simply *system suspend*) states, need 20 the target sleep state is referred to as *system suspend* too (in the majority 23 working state is referred to as *system resume*. 25 The kernel code flows associated with the suspend and resume transitions for [all …]
|
| D | sleep-states.rst | 1 .. SPDX-License-Identifier: GPL-2.0 13 Sleep states are global low-power states of the entire system in which user 22 the Linux kernel can support up to four system sleep states, including 23 hibernation and up to three variants of system suspend. The sleep states that 28 Suspend-to-Idle section in Sleep States That Can Be Supported 29 --------------- 31 This is a generic, pure software, light-weight variant of system suspend (also 32 referred to as S2I or S2Idle). It allows more energy to be saved relative to 33 runtime idle by freezing user space, suspending the timekeeping and putting all 34 I/O devices into low-power states (possibly lower-power than available in the [all …]
|
| /kernel/linux/linux-5.10/Documentation/admin-guide/pm/ |
| D | suspend-flows.rst | 1 .. SPDX-License-Identifier: GPL-2.0 5 System Suspend Code Flows 12 At least one global system-wide transition needs to be carried out for the 13 system to get from the working state into one of the supported 14 :doc:`sleep states <sleep-states>`. Hibernation requires more than one 15 transition to occur for this purpose, but the other sleep states, commonly 16 referred to as *system-wide suspend* (or simply *system suspend*) states, need 20 the target sleep state is referred to as *system suspend* too (in the majority 23 working state is referred to as *system resume*. 25 The kernel code flows associated with the suspend and resume transitions for [all …]
|
| D | sleep-states.rst | 1 .. SPDX-License-Identifier: GPL-2.0 13 Sleep states are global low-power states of the entire system in which user 22 the Linux kernel can support up to four system sleep states, including 23 hibernation and up to three variants of system suspend. The sleep states that 28 Suspend-to-Idle section in Sleep States That Can Be Supported 29 --------------- 31 This is a generic, pure software, light-weight variant of system suspend (also 32 referred to as S2I or S2Idle). It allows more energy to be saved relative to 33 runtime idle by freezing user space, suspending the timekeeping and putting all 34 I/O devices into low-power states (possibly lower-power than available in the [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/cpu/ |
| D | idle-states.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/cpu/idle-states.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Idle states 10 - Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> 11 - Anup Patel <anup@brainfault.org> 15 1 - Introduction 18 ARM and RISC-V systems contain HW capable of managing power consumption 19 dynamically, where cores can be put in different low-power states (ranging [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/arm/ |
| D | psci.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> 15 processors") can be used by Linux to initiate various CPU-centric power 18 Issue A of the specification describes functions for CPU suspend, hotplug 21 Functions are invoked by trapping to the privilege level of the PSCI 23 in a manner similar to that specified by AAPCS: 25 r0 => 32-bit Function ID / return value 26 {r1 - r3} => Parameters [all …]
|
| /kernel/linux/linux-5.10/Documentation/driver-api/usb/ |
| D | power-management.rst | 1 .. _usb-power-management: 7 :Date: Last-updated: February 2014 11 --------- 14 * When is a USB device idle? 17 * Changing the default idle-delay time 31 ------------------------- 35 component is ``suspended`` it is in a nonfunctional low-power state; it 37 ``resumed`` (returned to a functional full-power state) when the kernel 38 needs to use it. (There also are forms of PM in which components are 44 the system, we speak of it as a "system suspend". When a particular [all …]
|
| /kernel/linux/linux-6.6/Documentation/driver-api/usb/ |
| D | power-management.rst | 1 .. _usb-power-management: 7 :Date: Last-updated: February 2014 11 --------- 14 * When is a USB device idle? 17 * Changing the default idle-delay time 31 ------------------------- 35 component is ``suspended`` it is in a nonfunctional low-power state; it 37 ``resumed`` (returned to a functional full-power state) when the kernel 38 needs to use it. (There also are forms of PM in which components are 44 the system, we speak of it as a "system suspend". When a particular [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/arm/ |
| D | psci.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> 15 processors") can be used by Linux to initiate various CPU-centric power 18 Issue A of the specification describes functions for CPU suspend, hotplug 21 Functions are invoked by trapping to the privilege level of the PSCI 23 in a manner similar to that specified by AAPCS: 25 r0 => 32-bit Function ID / return value 26 {r1 - r3} => Parameters [all …]
|
| D | idle-states.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/arm/idle-states.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: ARM idle states binding description 10 - Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> 14 1 - Introduction 18 where cores can be put in different low-power states (ranging from simple wfi 19 to power gating) according to OS PM policies. The CPU states representing the 20 range of dynamic idle states that a processor can enter at run-time, can be [all …]
|
| /kernel/linux/linux-6.6/kernel/power/ |
| D | suspend.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * kernel/power/suspend.c - Suspend to RAM and standby functionality. 26 #include <linux/suspend.h> 65 * pm_suspend_default_s2idle - Check if suspend-to-idle is the default suspend. 67 * Return 'true' if suspend-to-idle has been selected as the default system 68 * suspend method. 103 /* Push all the CPUs into the idle loop. */ in s2idle_enter() 105 /* Make the current CPU wait so it can enter the idle loop too. */ in s2idle_enter() 110 * Kick all CPUs to ensure that they resume their timers and restore in s2idle_enter() 128 pm_pr_dbg("suspend-to-idle\n"); in s2idle_loop() [all …]
|
| /kernel/linux/linux-5.10/kernel/power/ |
| D | suspend.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * kernel/power/suspend.c - Suspend to RAM and standby functionality. 26 #include <linux/suspend.h> 65 * pm_suspend_default_s2idle - Check if suspend-to-idle is the default suspend. 67 * Return 'true' if suspend-to-idle has been selected as the default system 68 * suspend method. 102 /* Push all the CPUs into the idle loop. */ in s2idle_enter() 104 /* Make the current CPU wait so it can enter the idle loop too. */ in s2idle_enter() 122 pm_pr_dbg("suspend-to-idle\n"); in s2idle_loop() 125 * Suspend-to-idle equals: in s2idle_loop() [all …]
|
| /kernel/linux/linux-5.10/Documentation/power/ |
| D | suspend-and-interrupts.rst | 2 System Suspend and Device Interrupts 10 ----------------------------------- 13 suspend after the "late" phase of suspending devices (that is, after all of the 14 ->prepare, ->suspend and ->suspend_late callbacks have been executed for all 17 The rationale for doing so is that after the "late" phase of device suspend 19 trigger and if any devices have not been suspended properly yet, it is better to 23 In some cases they would attempt to access, for example, memory address spaces 24 of suspended devices and cause unpredictable behavior to ensue as a result. 25 Unfortunately, such problems are very difficult to debug and the introduction 26 of suspend_device_irqs(), along with the "noirq" phase of device suspend and [all …]
|
| /kernel/linux/linux-6.6/Documentation/power/ |
| D | suspend-and-interrupts.rst | 2 System Suspend and Device Interrupts 10 ----------------------------------- 13 suspend after the "late" phase of suspending devices (that is, after all of the 14 ->prepare, ->suspend and ->suspend_late callbacks have been executed for all 17 The rationale for doing so is that after the "late" phase of device suspend 19 trigger and if any devices have not been suspended properly yet, it is better to 23 In some cases they would attempt to access, for example, memory address spaces 24 of suspended devices and cause unpredictable behavior to ensue as a result. 25 Unfortunately, such problems are very difficult to debug and the introduction 26 of suspend_device_irqs(), along with the "noirq" phase of device suspend and [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/power/ |
| D | domain-idle-state.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 4 $id: http://devicetree.org/schemas/power/domain-idle-state.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: PM Domain Idle States 10 - Ulf Hansson <ulf.hansson@linaro.org> 13 A domain idle state node represents the state parameters that will be used to 18 const: domain-idle-states 21 "^(cpu|cluster|domain)-": 25 Each state node represents a domain idle state description. [all …]
|
| /kernel/linux/linux-6.6/arch/arm/mach-omap2/ |
| D | pm33xx-core.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (C) 2016-2018 Texas Instruments Incorporated - https://www.ti.com/ 11 #include <linux/suspend.h> 14 #include <asm/suspend.h> 18 #include <linux/platform_data/gpio-omap.h> 33 #include "omap-secure.h" 52 return -ENOMEM; in am43xx_map_scu() 60 pr_warn("WARNING: This platform does not support off-mode, entering DeepSleep suspend.\n"); in am33xx_check_off_mode_enable() 69 * Check for am437x-gp-evm which has the right Hardware design to in am43xx_check_off_mode_enable() 72 if (of_machine_is_compatible("ti,am437x-gp-evm") && enable_off_mode) in am43xx_check_off_mode_enable() [all …]
|
| /kernel/linux/linux-5.10/arch/arm/mach-omap2/ |
| D | pm33xx-core.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (C) 2016-2018 Texas Instruments Incorporated - https://www.ti.com/ 11 #include <linux/suspend.h> 14 #include <asm/suspend.h> 18 #include <linux/platform_data/gpio-omap.h> 34 #include "omap-secure.h" 53 return -ENOMEM; in am43xx_map_scu() 61 pr_warn("WARNING: This platform does not support off-mode, entering DeepSleep suspend.\n"); in am33xx_check_off_mode_enable() 70 * Check for am437x-gp-evm which has the right Hardware design to in am43xx_check_off_mode_enable() 73 if (of_machine_is_compatible("ti,am437x-gp-evm") && enable_off_mode) in am43xx_check_off_mode_enable() [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/mmc/ |
| D | ti-omap-hsmmc.txt | 10 -------------------- 11 - compatible: 12 Should be "ti,omap2-hsmmc", for OMAP2 controllers 13 Should be "ti,omap3-hsmmc", for OMAP3 controllers 14 Should be "ti,omap3-pre-es3-hsmmc" for OMAP3 controllers pre ES3.0 15 Should be "ti,omap4-hsmmc", for OMAP4 controllers 16 Should be "ti,am33xx-hsmmc", for AM335x controllers 17 Should be "ti,k2g-hsmmc", "ti,omap4-hsmmc" for 66AK2G controllers. 20 --------------------------------- 22 - ti,hwmods: Must be "mmc<n>", n is controller instance starting 1. [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/mmc/ |
| D | ti-omap-hsmmc.txt | 10 -------------------- 11 - compatible: 12 Should be "ti,omap2-hsmmc", for OMAP2 controllers 13 Should be "ti,omap3-hsmmc", for OMAP3 controllers 14 Should be "ti,omap3-pre-es3-hsmmc" for OMAP3 controllers pre ES3.0 15 Should be "ti,omap4-hsmmc", for OMAP4 controllers 16 Should be "ti,am33xx-hsmmc", for AM335x controllers 17 Should be "ti,k2g-hsmmc", "ti,omap4-hsmmc" for 66AK2G controllers. 20 --------------------------------- 22 - ti,hwmods: Must be "mmc<n>", n is controller instance starting 1. [all …]
|
| /kernel/linux/linux-6.6/drivers/cpuidle/ |
| D | cpuidle-psci.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * PSCI CPU idle driver. 29 #include "cpuidle-psci.h" 56 u32 *states = data->psci_states; in __psci_enter_domain_idle_state() 57 struct device *pd_dev = data->dev; in __psci_enter_domain_idle_state() 63 return -1; in __psci_enter_domain_idle_state() 65 /* Do runtime PM to manage a hierarchical CPU toplogy. */ in __psci_enter_domain_idle_state() 75 ret = psci_cpu_suspend_enter(state) ? -1 : idx; in __psci_enter_domain_idle_state() 84 /* Clear the domain state to start fresh when back from idle. */ in __psci_enter_domain_idle_state() 118 /* Clear domain state to start fresh at next online. */ in psci_idle_cpuhp_down() [all …]
|
| D | cpuidle-arm.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * ARM/ARM64 generic CPU idle driver. 25 * arm_enter_idle_state - Programs CPU to enter the specified state 31 * Called from the CPUidle framework to program the device to the 38 * Pass idle state index to arm_cpuidle_suspend which in turn in arm_enter_idle_state() 39 * will call the CPU ops suspend protocol with idle index as a in arm_enter_idle_state() 52 * to work around this issue and allow installing a special 53 * handler for idle state index 0. 66 { .compatible = "arm,idle-state", 75 * framework. It relies on core code to parse the idle states [all …]
|
| D | cpuidle-riscv-sbi.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * RISC-V SBI CPU idle driver. 9 #define pr_fmt(fmt) "cpuidle-riscv-sbi: " fmt 27 #include <asm/suspend.h> 52 data->available = true; in sbi_set_domain_state() 53 data->state = state; in sbi_set_domain_state() 60 return data->state; in sbi_get_domain_state() 67 data->available = false; in sbi_clear_domain_state() 74 return data->available; in sbi_is_domain_state_available() 115 u32 *states = data->states; in __sbi_enter_domain_idle_state() [all …]
|
| /kernel/linux/linux-5.10/drivers/cpuidle/ |
| D | cpuidle-arm.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * ARM/ARM64 generic CPU idle driver. 25 * arm_enter_idle_state - Programs CPU to enter the specified state 31 * Called from the CPUidle framework to program the device to the 38 * Pass idle state index to arm_cpuidle_suspend which in turn in arm_enter_idle_state() 39 * will call the CPU ops suspend protocol with idle index as a in arm_enter_idle_state() 52 * to work around this issue and allow installing a special 53 * handler for idle state index 0. 66 { .compatible = "arm,idle-state", 75 * framework. It relies on core code to parse the idle states [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/powerpc/4xx/ |
| D | cpm.txt | 4 - compatible : compatible list, currently only "ibm,cpm" 5 - dcr-access-method : "native" 6 - dcr-reg : < DCR register range > 9 - er-offset : All 4xx SoCs with a CPM controller have 15 er-offset = <1>. 16 - unused-units : specifier consist of one cell. For each 18 in CPM will be set to turn off unused 20 - idle-doze : specifier consist of one cell. For each 22 in CPM will be set to turn off unused 24 - standby : specifier consist of one cell. For each [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/powerpc/4xx/ |
| D | cpm.txt | 4 - compatible : compatible list, currently only "ibm,cpm" 5 - dcr-access-method : "native" 6 - dcr-reg : < DCR register range > 9 - er-offset : All 4xx SoCs with a CPM controller have 15 er-offset = <1>. 16 - unused-units : specifier consist of one cell. For each 18 in CPM will be set to turn off unused 20 - idle-doze : specifier consist of one cell. For each 22 in CPM will be set to turn off unused 24 - standby : specifier consist of one cell. For each [all …]
|