| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/dvfs/ |
| D | performance-domain.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/dvfs/performance-domain.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Generic performance domains 10 - Sudeep Holla <sudeep.holla@arm.com> 13 This binding is intended for performance management of groups of devices or 14 CPUs that run in the same performance domain. Performance domains must not 15 be confused with power domains. A performance domain is defined by a set 16 of devices that always have to run at the same performance level. For a given [all …]
|
| /kernel/linux/linux-6.6/include/linux/ |
| D | energy_model.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 14 * struct em_perf_state - Performance state of a performance domain 32 * EM_PERF_STATE_INEFFICIENT: The performance state is inefficient. There is 33 * in this em_perf_domain, another performance state with a higher frequency 40 * struct em_perf_domain - Performance domain 41 * @table: List of performance states, in ascending order 42 * @nr_perf_states: Number of performance states 44 * @cpus: Cpumask covering the CPUs of the domain. It's here 45 * for performance reasons to avoid potential cache 49 * In case of CPU device, a "performance domain" represents a group of CPUs [all …]
|
| D | scmi_protocol.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 5 * Copyright (C) 2018-2021 ARM Ltd. 21 * struct scmi_revision_info - version information structure 30 * @impl_ver: A vendor-specific implementation version. 32 * @sub_vendor_id: A sub-vendor identifier(Null terminated ASCII string) 74 * struct scmi_clk_proto_ops - represents the various operations provided 106 * struct scmi_perf_proto_ops - represents the various operations provided 107 * by SCMI Performance Protocol 109 * @num_domains_get: gets the number of supported performance domains 110 * @info_get: get the information of a performance domain [all …]
|
| /kernel/linux/linux-5.10/include/linux/ |
| D | energy_model.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 14 * em_perf_state - Performance state of a performance domain 16 * @power: The power consumed at this level, in milli-watts (by 1 CPU or 29 * em_perf_domain - Performance domain 30 * @table: List of performance states, in ascending order 31 * @nr_perf_states: Number of performance states 32 * @cpus: Cpumask covering the CPUs of the domain. It's here 33 * for performance reasons to avoid potential cache 37 * In case of CPU device, a "performance domain" represents a group of CPUs 38 * whose performance is scaled together. All CPUs of a performance domain [all …]
|
| D | scmi_protocol.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 19 * struct scmi_revision_info - version information structure 28 * @impl_ver: A vendor-specific implementation version. 30 * @sub_vendor_id: A sub-vendor identifier(Null terminated ASCII string) 61 * struct scmi_clk_ops - represents the various operations provided 85 * struct scmi_perf_ops - represents the various operations provided 86 * by SCMI Performance Protocol 88 * @limits_set: sets limits on the performance level of a domain 89 * @limits_get: gets limits on the performance level of a domain 90 * @level_set: sets the performance level of a domain [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/cpufreq/ |
| D | cpufreq-mediatek-hw.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/cpufreq/cpufreq-mediatek-hw.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Hector Yuan <hector.yuan@mediatek.com> 19 const: mediatek,cpufreq-hw 26 each frequency domain. Each entry corresponds to 27 a register bank for each frequency domain present. 29 "#performance-domain-cells": 31 Number of cells in a performance domain specifier. [all …]
|
| D | apple,cluster-cpufreq.yaml | 1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 3 --- 4 $id: http://devicetree.org/schemas/cpufreq/apple,cluster-cpufreq.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Hector Martin <marcan@marcan.st> 13 Apple SoCs (e.g. M1) have a per-cpu-cluster DVFS controller that is part of 15 operating-points-v2 table to define the CPU performance states, with the 16 opp-level property specifying the hardware p-state index for that level. 21 - items: 22 - enum: [all …]
|
| /kernel/linux/linux-5.10/kernel/power/ |
| D | energy_model.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (c) 2018-2020, Arm ltd. 20 * Mutex serializing the registrations of performance domains and letting 27 return (dev->bus == &cpu_subsys); in _is_cpu_device() 38 snprintf(name, sizeof(name), "ps:%lu", ps->frequency); in em_debug_create_ps() 40 /* Create per-ps directory */ in em_debug_create_ps() 42 debugfs_create_ulong("frequency", 0444, d, &ps->frequency); in em_debug_create_ps() 43 debugfs_create_ulong("power", 0444, d, &ps->power); in em_debug_create_ps() 44 debugfs_create_ulong("cost", 0444, d, &ps->cost); in em_debug_create_ps() 49 seq_printf(s, "%*pbl\n", cpumask_pr_args(to_cpumask(s->private))); in em_debug_cpus_show() [all …]
|
| /kernel/linux/linux-6.6/kernel/power/ |
| D | energy_model.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (c) 2018-2021, Arm ltd. 21 * Mutex serializing the registrations of performance domains and letting 28 return (dev->bus == &cpu_subsys); in _is_cpu_device() 39 snprintf(name, sizeof(name), "ps:%lu", ps->frequency); in em_debug_create_ps() 41 /* Create per-ps directory */ in em_debug_create_ps() 43 debugfs_create_ulong("frequency", 0444, d, &ps->frequency); in em_debug_create_ps() 44 debugfs_create_ulong("power", 0444, d, &ps->power); in em_debug_create_ps() 45 debugfs_create_ulong("cost", 0444, d, &ps->cost); in em_debug_create_ps() 46 debugfs_create_ulong("inefficient", 0444, d, &ps->flags); in em_debug_create_ps() [all …]
|
| /kernel/linux/linux-5.10/Documentation/power/ |
| D | energy-model.rst | 1 .. SPDX-License-Identifier: GPL-2.0 8 ----------- 11 the power consumed by devices at various performance levels, and the kernel 12 subsystems willing to use that information to make energy-aware decisions. 18 each and every client subsystem to re-implement support for each and every 23 The figure below depicts an example of drivers (Arm-specific here, but the 27 +---------------+ +-----------------+ +---------------+ 29 +---------------+ +-----------------+ +---------------+ 32 +---------+ | +---------+ 35 +---------------------+ [all …]
|
| /kernel/linux/linux-6.6/Documentation/power/ |
| D | energy-model.rst | 1 .. SPDX-License-Identifier: GPL-2.0 8 ----------- 11 the power consumed by devices at various performance levels, and the kernel 12 subsystems willing to use that information to make energy-aware decisions. 18 each and every client subsystem to re-implement support for each and every 23 The power values might be expressed in micro-Watts or in an 'abstract scale'. 26 can be found in the Energy-Aware Scheduler documentation 27 Documentation/scheduler/sched-energy.rst. For some subsystems like thermal or 30 thus the real micro-Watts might be needed. An example of these requirements can 32 Documentation/driver-api/thermal/power_allocator.rst. [all …]
|
| /kernel/linux/linux-6.6/Documentation/scheduler/ |
| D | sched-energy.rst | 6 --------------- 25 please refer to its documentation (see Documentation/power/energy-model.rst). 29 ----------------------------- 32 - energy = [joule] (resource like a battery on powered devices) 33 - power = energy/time = [joule/second] = [watt] 38 performance [inst/s] 39 -------------------- 45 ----------- 48 while still getting 'good' performance. It is essentially an alternative 49 optimization objective to the current performance-only objective for the [all …]
|
| /kernel/linux/linux-5.10/Documentation/scheduler/ |
| D | sched-energy.rst | 6 --------------- 25 please refer to its documentation (see Documentation/power/energy-model.rst). 29 ----------------------------- 32 - energy = [joule] (resource like a battery on powered devices) 33 - power = energy/time = [joule/second] = [watt] 38 performance [inst/s] 39 -------------------- 45 ----------- 48 while still getting 'good' performance. It is essentially an alternative 49 optimization objective to the current performance-only objective for the [all …]
|
| /kernel/linux/linux-5.10/drivers/acpi/ |
| D | processor_perflib.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * processor_perflib.c - ACPI Processor P-States Library ($Revision: 71 $) 9 * - Added processor hotplug support 26 #define ACPI_PROCESSOR_FILE_PERFORMANCE "performance" 43 * -1 -> cpufreq low level drivers not initialized -> _PSS, etc. not called yet 45 * 0 -> cpufreq low level drivers initialized -> consider _PPC values 46 * 1 -> ignore _PPC totally -> forced by user through boot param 48 static int ignore_ppc = -1; 64 return -EINVAL; in acpi_processor_get_platform_limit() 70 status = acpi_evaluate_integer(pr->handle, "_PPC", NULL, &ppc); in acpi_processor_get_platform_limit() [all …]
|
| /kernel/linux/linux-6.6/drivers/acpi/ |
| D | processor_perflib.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * processor_perflib.c - ACPI Processor P-States Library ($Revision: 71 $) 9 * - Added processor hotplug support 25 #define ACPI_PROCESSOR_FILE_PERFORMANCE "performance" 40 * -1 -> cpufreq low level drivers not initialized -> _PSS, etc. not called yet 42 * 0 -> cpufreq low level drivers initialized -> consider _PPC values 43 * 1 -> ignore _PPC totally -> forced by user through boot param 45 static int ignore_ppc = -1; 61 return -EINVAL; in acpi_processor_get_platform_limit() 67 status = acpi_evaluate_integer(pr->handle, "_PPC", NULL, &ppc); in acpi_processor_get_platform_limit() [all …]
|
| /kernel/linux/linux-5.10/Documentation/powerpc/ |
| D | associativity.rst | 6 domains of substantially similar mean performance relative to resources outside 7 of that domain. Resources subsets of a given domain that exhibit better 8 performance relative to each other than relative to other resources subsets 9 are represented as being members of a sub-grouping domain. This performance 17 Hypervisor indicates the type/form of associativity used via "ibm,architecture-vec-5 property". 18 Bit 0 of byte 5 in the "ibm,architecture-vec-5" property indicates usage of Form 0 or Form 1. 20 bit 2 of byte 5 in the "ibm,architecture-vec-5" property is used. 23 ------ 27 ------ 28 With Form 1 a combination of ibm,associativity-reference-points, and ibm,associativity [all …]
|
| /kernel/linux/linux-6.6/Documentation/powerpc/ |
| D | associativity.rst | 6 domains of substantially similar mean performance relative to resources outside 7 of that domain. Resources subsets of a given domain that exhibit better 8 performance relative to each other than relative to other resources subsets 9 are represented as being members of a sub-grouping domain. This performance 17 Hypervisor indicates the type/form of associativity used via "ibm,architecture-vec-5 property". 18 Bit 0 of byte 5 in the "ibm,architecture-vec-5" property indicates usage of Form 0 or Form 1. 20 bit 2 of byte 5 in the "ibm,architecture-vec-5" property is used. 23 ------ 27 ------ 28 With Form 1 a combination of ibm,associativity-reference-points, and ibm,associativity [all …]
|
| /kernel/linux/linux-5.10/include/dt-bindings/power/ |
| D | qcom-rpmpd.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 7 /* SDM845 Power Domain Indexes */ 18 /* SM8150 Power Domain Indexes */ 31 /* SM8250 Power Domain Indexes */ 43 /* SC7180 Power Domain Indexes */ 53 /* SDM845 Power Domain performance levels */ 67 /* MSM8976 Power Domain Indexes */ 75 /* MSM8996 Power Domain Indexes */ 84 /* MSM8998 Power Domain Indexes */ 105 /* RPM SMD Power Domain performance levels */
|
| /kernel/linux/linux-5.10/drivers/soc/qcom/ |
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 15 the low-power state for resources related to the remoteproc 26 resource on a RPM-hardened platform must use this database to get 43 be called qcom-cpr 87 allocate memory from OCMEM based on performance, latency and power 106 purpose of exchanging sector-data between the remote filesystem 112 bool "Qualcomm RPM-Hardened (RPMH) Communication" 115 Support for communication with the hardened-RPM blocks in 122 tristate "Qualcomm RPMh Power domain driver" 125 QCOM RPMh Power domain driver to support power-domains with [all …]
|
| /kernel/linux/linux-6.6/drivers/base/power/ |
| D | domain.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * drivers/base/power/domain.c - Common code related to device power domains. 35 __routine = genpd->dev_ops.callback; \ 54 mutex_lock(&genpd->mlock); in genpd_lock_mtx() 60 mutex_lock_nested(&genpd->mlock, depth); in genpd_lock_nested_mtx() 65 return mutex_lock_interruptible(&genpd->mlock); in genpd_lock_interruptible_mtx() 70 return mutex_unlock(&genpd->mlock); in genpd_unlock_mtx() 81 __acquires(&genpd->slock) in genpd_lock_spin() 85 spin_lock_irqsave(&genpd->slock, flags); in genpd_lock_spin() 86 genpd->lock_flags = flags; in genpd_lock_spin() [all …]
|
| /kernel/linux/linux-6.6/arch/arm64/boot/dts/mediatek/ |
| D | mt8192.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0 OR MIT) 7 /dts-v1/; 8 #include <dt-bindings/clock/mt8192-clk.h> 9 #include <dt-bindings/gce/mt8192-gce.h> 10 #include <dt-bindings/interrupt-controller/arm-gic.h> 11 #include <dt-bindings/interrupt-controller/irq.h> 12 #include <dt-bindings/memory/mt8192-larb-port.h> 13 #include <dt-bindings/pinctrl/mt8192-pinfunc.h> 14 #include <dt-bindings/phy/phy.h> 15 #include <dt-bindings/power/mt8192-power.h> [all …]
|
| /kernel/linux/linux-5.10/drivers/base/power/ |
| D | domain.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * drivers/base/power/domain.c - Common code related to device power domains. 34 __routine = genpd->dev_ops.callback; \ 53 mutex_lock(&genpd->mlock); in genpd_lock_mtx() 59 mutex_lock_nested(&genpd->mlock, depth); in genpd_lock_nested_mtx() 64 return mutex_lock_interruptible(&genpd->mlock); in genpd_lock_interruptible_mtx() 69 return mutex_unlock(&genpd->mlock); in genpd_unlock_mtx() 80 __acquires(&genpd->slock) in genpd_lock_spin() 84 spin_lock_irqsave(&genpd->slock, flags); in genpd_lock_spin() 85 genpd->lock_flags = flags; in genpd_lock_spin() [all …]
|
| /kernel/linux/linux-6.6/drivers/soc/qcom/ |
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 15 the low-power state for resources related to the remoteproc 26 resource on a RPM-hardened platform must use this database to get 43 be called qcom-cpr 87 allocate memory from OCMEM based on performance, latency and power 110 Say yes here to support USB-C and battery status on modern Qualcomm 133 purpose of exchanging sector-data between the remote filesystem 142 The RPM Master sleep stats driver provides detailed per-subsystem 144 assess whether all the low-power modes available are entered as 150 tristate "Qualcomm RPM-Hardened (RPMH) Communication" [all …]
|
| /kernel/linux/linux-6.6/drivers/cpufreq/ |
| D | scmi-cpufreq.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (C) 2018-2021 ARM Ltd. 11 #include <linux/clk-provider.h> 37 struct scmi_data *priv = policy->driver_data; in scmi_cpufreq_get_rate() 41 ret = perf_ops->freq_get(ph, priv->domain_id, &rate, false); in scmi_cpufreq_get_rate() 48 * perf_ops->freq_set is not a synchronous, the actual OPP change will 55 struct scmi_data *priv = policy->driver_data; in scmi_cpufreq_set_target() 56 u64 freq = policy->freq_table[index].frequency; in scmi_cpufreq_set_target() 58 return perf_ops->freq_set(ph, priv->domain_id, freq * 1000, false); in scmi_cpufreq_set_target() 64 struct scmi_data *priv = policy->driver_data; in scmi_cpufreq_fast_switch() [all …]
|
| /kernel/linux/linux-6.6/drivers/clk/tegra/ |
| D | clk-device.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 #include <linux/clk-provider.h> 18 * This driver manages performance state of the core power domain for the 33 struct device *dev = clk_dev->dev; in tegra_clock_set_pd_state() 38 if (opp == ERR_PTR(-ERANGE)) { in tegra_clock_set_pd_state() 43 * need to set up performance state of the power domain and in tegra_clock_set_pd_state() 71 mutex_lock(&clk_dev->lock); in tegra_clock_change_notify() 74 if (cnd->new_rate > cnd->old_rate) in tegra_clock_change_notify() 75 err = tegra_clock_set_pd_state(clk_dev, cnd->new_rate); in tegra_clock_change_notify() 79 err = tegra_clock_set_pd_state(clk_dev, cnd->old_rate); in tegra_clock_change_notify() [all …]
|