/linux/drivers/thermal/ |
H A D | cpuidle_cooling.c | 1 // SPDX-License-Identifier: GPL-2.0 21 * struct cpuidle_cooling_device - data for the idle cooling device 22 * @ii_dev: an atomic to keep track of the last task exiting the idle cycle 23 * @state: a normalized integer giving the state of the cooling device 27 unsigned long state; member 31 * cpuidle_cooling_runtime - Running time computation 32 * @idle_duration_us: CPU idle time to inject in microseconds 33 * @state: a percentile based number 35 * The running duration is computed from the idle injection duration 36 * which is fixed. If we reach 100% of idle injection ratio, that [all …]
|
/linux/drivers/cpuidle/ |
H A D | dt_idle_states.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * DT idle states parsing code. 9 #define pr_fmt(fmt) "DT idle-states: " fmt 29 * pointer of the passed in struct of_device_id array to the idle in init_state_node() 30 * state enter function. in init_state_node() 32 idle_state->enter = match_id->data; in init_state_node() 34 * Since this is not a "coupled" state, it's safe to assume interrupts in init_state_node() 38 idle_state->enter_s2idle = match_id->data; in init_state_node() 40 err = of_property_read_u32(state_node, "wakeup-latency-us", in init_state_node() 41 &idle_state->exit_latency); in init_state_node() [all …]
|
H A D | cpuidle-powernv.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * cpuidle-powernv - idle state cpuidle driver. 4 * Adapted from drivers/cpuidle/cpuidle-pseries 26 * Expose only those Hardware idle states via the cpuidle framework 32 .name = "powernv_idle", 58 for (i = index + 1; i < drv->state_count; i++) { in get_snooze_timeout() 59 if (dev->states_usage[i].disable) in get_snooze_timeout() 62 return drv->states[i].target_residency * tb_ticks_per_usec; in get_snooze_timeout() 79 dev->poll_time_limit = false; in snooze_loop() 90 dev->poll_time_limit = true; in snooze_loop() [all …]
|
H A 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 40 u32 state; member 48 static inline void sbi_set_domain_state(u32 state) in sbi_set_domain_state() argument 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() [all …]
|
H A D | dt_idle_genpd.c | 1 // SPDX-License-Identifier: GPL-2.0-only 12 #define pr_fmt(fmt) "dt-idle-genpd: " fmt 29 u32 state, *state_buf; in pd_parse_state_nodes() local 32 ret = parse_state(to_of_node(states[i].fwnode), &state); in pd_parse_state_nodes() 38 ret = -ENOMEM; in pd_parse_state_nodes() 41 *state_buf = state; in pd_parse_state_nodes() 48 i--; in pd_parse_state_nodes() 49 for (; i >= 0; i--) in pd_parse_state_nodes() 61 /* Parse the domain idle states. */ in pd_parse_states() 66 /* Fill out the dt specifics for each found state. */ in pd_parse_states() [all …]
|
H A D | cpuidle-psci.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * PSCI CPU idle driver. 30 #include "cpuidle-psci.h" 42 u32 state; member 50 u32 state) in psci_set_domain_state() argument 54 ds->pd = pd; in psci_set_domain_state() 55 ds->state_idx = state_idx; in psci_set_domain_state() 56 ds->state = state; in psci_set_domain_state() 61 __this_cpu_write(psci_domain_state.state, 0); in psci_clear_domain_state() 69 u32 *states = data->psci_states; in __psci_enter_domain_idle_state() [all …]
|
H A D | poll_state.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * poll_state.c - Polling idle state 9 #include <linux/sched/idle.h> 20 dev->poll_time_limit = false; in poll_idle() 35 if (local_clock_noinstr() - time_start > limit) { in poll_idle() 36 dev->poll_time_limit = true; in poll_idle() 50 struct cpuidle_state *state = &drv->states[0]; in cpuidle_poll_state_init() local 52 snprintf(state->name, CPUIDLE_NAME_LEN, "POLL"); in cpuidle_poll_state_init() 53 snprintf(state->desc, CPUIDLE_DESC_LEN, "CPUIDLE CORE POLL IDLE"); in cpuidle_poll_state_init() 54 state->exit_latency = 0; in cpuidle_poll_state_init() [all …]
|
/linux/Documentation/devicetree/bindings/powerpc/opal/ |
H A D | power-mgt.txt | 1 IBM Power-Management Bindings 5 idle states. The description of these idle states is exposed via the 6 node @power-mgt in the device-tree by the firmware. 9 ---------------- 10 Typically each idle state has the following associated properties: 12 - name: The name of the idle state as defined by the firmware. 14 - flags: indicating some aspects of this idle states such as the 15 extent of state-loss, whether timebase is stopped on this 16 idle states and so on. The flag bits are as follows: 18 - exit-latency: The latency involved in transitioning the state of the [all …]
|
/linux/tools/power/cpupower/man/ |
H A D | cpupower-monitor.1 | 1 .TH CPUPOWER\-MONITOR "1" "22/02/2011" "" "cpupower Manual" 2 .SH NAME 3 cpupower\-monitor \- Report processor frequency and idle statistics 7 .RB "\-l" 10 .RB [ -c ] [ "\-m <mon1>," [ "<mon2>,..." ] ] 11 .RB [ "\-i seconds" ] 14 .RB [ -c ][ "\-m <mon1>," [ "<mon2>,..." ] ] 18 \fBcpupower-monitor \fP reports processor topology, frequency and idle power 19 state statistics. Either \fBcommand\fP is forked and 22 \fBcpupower-monitor \fP implements independent processor sleep state and [all …]
|
H A D | cpupower-idle-set.1 | 1 .TH "CPUPOWER-IDLE-SET" "1" "0.1" "" "cpupower Manual" 2 .SH "NAME" 4 cpupower\-idle\-set \- Utility to set cpu idle state specific kernel options 7 cpupower [ \-c cpulist ] idle\-set [\fIoptions\fP] 10 The cpupower idle\-set subcommand allows to set cpu idle, also called cpu 11 sleep state, specific options offered by the kernel. One example is disabling 16 \fB\-d\fR \fB\-\-disable\fR <STATE_NO> 17 Disable a specific processor sleep state. 19 \fB\-e\fR \fB\-\-enable\fR <STATE_NO> 20 Enable a specific processor sleep state. [all …]
|
H A D | cpupower-idle-info.1 | 1 .TH "CPUPOWER-IDLE-INFO" "1" "0.1" "" "cpupower Manual" 2 .SH "NAME" 4 cpupower\-idle\-info \- Utility to retrieve cpu idle kernel information 7 cpupower [ \-c cpulist ] idle\-info [\fIoptions\fP] 10 A tool which prints out per cpu idle information helpful to developers and interested users. 14 \fB\-f\fR \fB\-\-silent\fR 15 Only print a summary of all available C-states in the system. 17 \fB\-e\fR \fB\-\-proc\fR 19 Prints out idle information in old /proc/acpi/processor/*/power format. This 23 .SH IDLE\-INFO DESCRIPTIONS [all …]
|
/linux/arch/arm/mach-omap2/ |
H A D | cpuidle34xx.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * linux/arch/arm/mach-omap2/cpuidle34xx.c 5 * OMAP3 CPU IDLE Routines 11 * Karthik Dasu <karthik-dp@ti.com> 17 * Richard Woodruff <r-woodruff2@ti.com> 36 /* Mach specific information to be recorded in the C-state driver_data */ 53 * entering idle. 65 /* In C1 do not allow PER state lower than CORE state */ 102 * omap3_enter_idle - Programs OMAP3 to enter the specified state 105 * @index: the index of state to be entered [all …]
|
H A D | clockdomain.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 6 * Copyright (C) 2008-2011 Nokia Corporation 29 * CLKDM_MISSING_IDLE_REPORTING: The idle status of the IP blocks and 31 * the PRCM when determining whether the clockdomain is idle. 33 * hardware-supervised idle mode, the PRCM may transition the 34 * enclosing powerdomain to a low power state, even when devices 38 * force-sleep mode, then the HW_AUTO mode will be used to put the 40 * the force-wakeup mode, then it will be used whenever a clock or 58 * struct clkdm_autodep - clkdm deps to add when entering/exiting hwsup mode 59 * @clkdm: clockdomain to add wkdep+sleepdep on - set name member only [all …]
|
H A D | cpuidle44xx.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * OMAP4+ CPU idle Routines 5 * Copyright (C) 2011-2013 Texas Instruments, Inc. 76 * omap_enter_idle_[simple/coupled] - OMAP4PLUS cpuidle entry functions 79 * @index: the index of state to be entered 82 * specified low power state selected by the governor. 83 * Returns the amount of time spent in the low power state. 101 cx->mpu_state_vote++; in omap_enter_idle_smp() 102 if (cx->mpu_state_vote == num_online_cpus()) { in omap_enter_idle_smp() 103 pwrdm_set_logic_retst(mpu_pd, cx->mpu_logic_state); in omap_enter_idle_smp() [all …]
|
H A D | omap_hwmod.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 * Copyright (C) 2009-2011 Nokia Corporation 6 * Copyright (C) 2011-2012 Texas Instruments, Inc. 15 * ------------ 21 * TI's documentation, on-chip devices are referred to as "OMAP 26 * Most of the address and data flow between modules is via OCP-based 28 * interconnects that distribute the hardware clock tree, handle idle 32 * OMAP hwmod provides a consistent way to describe the on-chip 36 * to reset, enable, idle, and disable these hardware blocks. And 42 * ----------- [all …]
|
/linux/Documentation/driver-api/pm/ |
H A D | cpuidle.rst | 1 .. SPDX-License-Identifier: GPL-2.0 5 CPU Idle Time Management 13 CPU Idle Time Management Subsystem 18 cores) is idle after an interrupt or equivalent wakeup event, which means that 19 there are no tasks to run on it except for the special "idle" task associated 21 belongs to. That can be done by making the idle logical CPU stop fetching 23 depended on by it into an idle state in which they will draw less power. 25 However, there may be multiple different idle states that can be used in such a 28 particular idle state. That is the role of the CPU idle time management 35 units: *governors* responsible for selecting idle states to ask the processor [all …]
|
/linux/drivers/gpu/drm/i915/gt/ |
H A D | selftest_context.c | 1 // SPDX-License-Identifier: GPL-2.0 26 rq->sched.attr.priority = I915_PRIORITY_BARRIER; in request_sync() 35 lockdep_unpin_lock(&tl->mutex, rq->cookie); in request_sync() 36 mutex_unlock(&tl->mutex); in request_sync() 46 struct intel_timeline *tl = ce->timeline; in context_sync() 49 mutex_lock(&tl->mutex); in context_sync() 54 if (list_empty(&tl->requests)) in context_sync() 57 rq = list_last_entry(&tl->requests, typeof(*rq), link); in context_sync() 68 mutex_unlock(&tl->mutex); in context_sync() 71 i915_active_unlock_wait(&ce->active); in context_sync() [all …]
|
/linux/Documentation/admin-guide/pm/ |
H A D | intel_idle.rst | 1 .. SPDX-License-Identifier: GPL-2.0 5 ``intel_idle`` CPU Idle Time Management Driver 17 :doc:`CPU idle time management subsystem <cpuidle>` in the Linux kernel 18 (``CPUIdle``). It is the default CPU idle time management driver for the 24 Documentation/admin-guide/pm/cpuidle.rst if you have not done that yet.] 27 logical CPU executing it is idle and so it may be possible to put some of the 28 processor's functional blocks into low-power states. That instruction takes two 38 only way to pass early-configuration-time parameters to it is via the kernel 55 C-state requests from the OS (e.g., C6 requests) to C1. The idea is that 56 firmware monitors CPU wake-up rate, and if it is higher than a [all …]
|
/linux/tools/power/x86/turbostat/ |
H A D | turbostat.8 | 2 .SH NAME 3 turbostat \- Report processor frequency and idle statistics 12 .RB [ "\--interval seconds" ] 15 idle power-state statistics, temperature and power on X86 processors. 19 in one-shot upon its completion. 22 The 5-second interval can be changed using the --interval option. 26 Options can be specified with a single or double '-', and only as much of the option 27 name as necessary to disambiguate it from others is necessary. Note that options are case-sensitiv… 29 \fB--add attributes\fP add column with counter having specified 'attributes'. The 'location' attri… 39 … event for given device from /sys/bus/event_source/devices/<device>/events/<event> eg. c1-residency [all …]
|
/linux/Documentation/devicetree/bindings/cpu/ |
H A 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 …]
|
/linux/Documentation/devicetree/bindings/regulator/ |
H A D | rohm,bd71828-regulator.yaml | 1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 3 --- 4 $id: http://devicetree.org/schemas/regulator/rohm,bd71828-regulator.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Matti Vaittinen <mazziesaccount@gmail.com> 14 see Documentation/devicetree/bindings/mfd/rohm,bd71828-pmic.yaml. 16 The regulator controller is represented as a sub-node of the PMIC node 25 "^LDO[1-7]$": 32 regulator-name: 33 pattern: "^ldo[1-7]$" [all …]
|
/linux/drivers/cpuidle/governors/ |
H A D | teo.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Timer events oriented CPU idle governor 5 * Copyright (C) 2018 - 2021 Intel Corporation 10 * DOC: teo-description 16 * can be determined at the idle state selection time, although doing that may 18 * for idle state selection. 20 * Of course, non-timer wakeup sources are more important in some use cases, 21 * but even then it is generally unnecessary to consider idle duration values 27 * checks if it can select a shallow idle state using wakeup pattern information 29 * at all. For this purpose, it counts CPU wakeup events and looks for an idle [all …]
|
/linux/arch/powerpc/platforms/44x/ |
H A D | cpm.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 8 * Based on arch/powerpc/platforms/44x/idle.c: 26 #include <asm/dcr-native.h> 50 const char *name; member 72 /* return old state, to restore later if needed */ in cpm_set() 80 /* save off initial state */ in cpm_idle_wait() 84 /* set wait state MSR */ in cpm_idle_wait() 87 /* return to initial state */ in cpm_idle_wait() 96 /* update CPM_ER state */ in cpm_idle_sleep() 99 /* go to wait state so that CPM0_ER[CPU] can take effect */ in cpm_idle_sleep() [all …]
|
/linux/drivers/clk/ti/ |
H A D | clkt_dflt.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 * Copyright (C) 2005-2008, 2015 Texas Instruments, Inc. 6 * Copyright (C) 2004-2010 Nokia Corporation 9 * Richard Woodruff <r-woodruff2@ti.com> 11 * Tero Kristo <t-kristo@ti.com> 16 #include <linux/clk-provider.h> 25 * for a module to indicate that it is no longer in idle 37 * _wait_idlest_generic - wait for a module to leave the idle state 41 * @idlest: idle state indicator (0 or 1) for the clock 42 * @name: name of the clock (for printk) [all …]
|
/linux/arch/arm/mach-bcm/ |
H A D | platsmp.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (C) 2014-2015 Broadcom Corporation 12 #include <linux/irqchip/irq-bcm2836.h> 33 /* Name of device node property defining secondary boot register location */ 34 #define OF_SECONDARY_BOOT "secondary-boot-reg" 54 return -ENXIO; in scu_a9_enable() 61 return -ENOENT; in scu_a9_enable() 68 return -ENOMEM; in scu_a9_enable() 106 return -EINVAL; in nsp_write_lut() 111 pr_warn("unable to ioremap SKU-ROM LUT register for cpu %u\n", cpu); in nsp_write_lut() [all …]
|