| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/cpufreq/ |
| D | cpufreq-qcom-hw.txt | 8 - compatible 11 Definition: must be "qcom,cpufreq-hw" or "qcom,cpufreq-epss". 13 - clocks 18 - clock-names 23 - reg 25 Value type: <prop-encoded-array> 27 each frequency domain. 28 - reg-names 31 Definition: Frequency domain name i.e. 32 "freq-domain0", "freq-domain1". [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 40 * struct em_perf_domain - Performance domain 44 * @cpus: Cpumask covering the CPUs of the domain. It's here 49 * In case of CPU device, a "performance domain" represents a group of CPUs 50 * whose performance is scaled together. All CPUs of a performance domain 51 * must have the same micro-architecture. Performance domains often have 52 * a 1-to-1 mapping with CPUFreq policies. In case of other devices the @cpus 65 * EM_PERF_DOMAIN_MICROWATTS: The power values are in micro-Watts or some 78 #define em_span_cpus(em) (to_cpumask((em)->cpus)) [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/cpufreq/ |
| D | cpufreq-qcom-hw.yaml | 1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 3 --- 4 $id: http://devicetree.org/schemas/cpufreq/cpufreq-qcom-hw.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 21 - description: v1 of CPUFREQ HW 23 - enum: 24 - qcom,qcm2290-cpufreq-hw 25 - qcom,sc7180-cpufreq-hw 26 - qcom,sdm845-cpufreq-hw [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 32 * @cpus: Cpumask covering the CPUs of the domain. It's here 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 39 * must have the same micro-architecture. Performance domains often have 40 * a 1-to-1 mapping with CPUFreq policies. In case of other devices the @cpus 49 #define em_span_cpus(em) (to_cpumask((em)->cpus)) [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. 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() 60 /* Create the directory of the performance domain */ in em_debug_create_pd() [all …]
|
| /kernel/linux/linux-5.10/drivers/firmware/arm_scmi/ |
| D | perf.c | 1 // SPDX-License-Identifier: GPL-2.0 8 #define pr_fmt(fmt) "SCMI Notifications PERF - " fmt 13 #include <linux/io-64-nonatomic-hi-lo.h> 63 __le32 domain; member 68 __le32 domain; member 79 __le32 domain; member 84 __le32 domain; member 113 __le32 domain; member 190 attr = t->rx.buf; in scmi_perf_attributes_get() 194 u16 flags = le16_to_cpu(attr->flags); in scmi_perf_attributes_get() [all …]
|
| /kernel/linux/linux-5.10/drivers/net/wireless/ath/ |
| D | dfs_pattern_detector.c | 25 * struct radar_types - contains array of patterns defined for one DFS domain 26 * @domain: DFS regulatory domain 38 #define PPB_THRESH_RATE(PPB, RATE) ((PPB * RATE + 100 - RATE) / 100) 43 #define WIDTH_LOWER(X) ((X*(100-WIDTH_TOLERANCE)+50)/100) 49 (PRF2PRI(PMAX) - PRI_TOLERANCE), \ 54 /* radar types as defined by ETSI EN-301-893 v1.5.1 */ 74 PMIN - PRI_TOLERANCE, \ 106 PMIN - PRI_TOLERANCE, \ 135 * get_dfs_domain_radar_types() - get radar types for a given DFS domain 136 * @param domain DFS domain [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. 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() 51 seq_printf(s, "%*pbl\n", cpumask_pr_args(to_cpumask(s->private))); in em_debug_cpus_show() [all …]
|
| /kernel/linux/linux-6.6/drivers/firmware/arm_scmi/ |
| D | perf.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (C) 2018-2023 ARM Ltd. 8 #define pr_fmt(fmt) "SCMI Notifications PERF - " fmt 83 __le32 domain; member 88 __le32 domain; member 99 __le32 domain; member 104 __le32 domain; member 171 if (_opp->indicative_freq == f_) \ 197 ret = ph->xops->xfer_get_init(ph, PROTOCOL_ATTRIBUTES, 0, in scmi_perf_attributes_get() 202 attr = t->rx.buf; in scmi_perf_attributes_get() [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/nvkm/subdev/clk/ |
| D | base.c | 42 u8 pstate, u8 domain, u32 input) in nvkm_clk_adjust() argument 44 struct nvkm_bios *bios = clk->subdev.device->bios; in nvkm_clk_adjust() 62 if (subd && boostS.domain == domain) { in nvkm_clk_adjust() 76 * C-States 82 const struct nvkm_domain *domain = clk->domains; in nvkm_cstate_valid() local 83 struct nvkm_volt *volt = clk->subdev.device->volt; in nvkm_cstate_valid() 86 while (domain && domain->name != nv_clk_src_max) { in nvkm_cstate_valid() 87 if (domain->flags & NVKM_CLK_DOM_FLAG_VPSTATE) { in nvkm_cstate_valid() 88 u32 freq = cstate->domain[domain->name]; in nvkm_cstate_valid() local 89 switch (clk->boost_mode) { in nvkm_cstate_valid() [all …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/nouveau/nvkm/subdev/clk/ |
| D | base.c | 42 u8 pstate, u8 domain, u32 input) in nvkm_clk_adjust() argument 44 struct nvkm_bios *bios = clk->subdev.device->bios; in nvkm_clk_adjust() 62 if (subd && boostS.domain == domain) { in nvkm_clk_adjust() 76 * C-States 82 const struct nvkm_domain *domain = clk->domains; in nvkm_cstate_valid() local 83 struct nvkm_volt *volt = clk->subdev.device->volt; in nvkm_cstate_valid() 86 while (domain && domain->name != nv_clk_src_max) { in nvkm_cstate_valid() 87 if (domain->flags & NVKM_CLK_DOM_FLAG_VPSTATE) { in nvkm_cstate_valid() 88 u32 freq = cstate->domain[domain->name]; in nvkm_cstate_valid() local 89 switch (clk->boost_mode) { in nvkm_cstate_valid() [all …]
|
| /kernel/linux/linux-5.10/drivers/cpufreq/ |
| D | qcom-cpufreq-hw.c | 1 // SPDX-License-Identifier: GPL-2.0 50 dev = get_cpu_device(policy->cpu); in qcom_cpufreq_set_bw() 52 return -ENODEV; in qcom_cpufreq_set_bw() 76 dev_err(cpu_dev, "Voltage update failed freq=%ld\n", freq_khz); in qcom_cpufreq_update_opp() 86 struct qcom_cpufreq_data *data = policy->driver_data; in qcom_cpufreq_hw_target_index() 87 const struct qcom_cpufreq_soc_data *soc_data = data->soc_data; in qcom_cpufreq_hw_target_index() 88 unsigned long freq = policy->freq_table[index].frequency; in qcom_cpufreq_hw_target_index() local 90 writel_relaxed(index, data->base + soc_data->reg_perf_state); in qcom_cpufreq_hw_target_index() 93 qcom_cpufreq_set_bw(policy, freq); in qcom_cpufreq_hw_target_index() 109 data = policy->driver_data; in qcom_cpufreq_hw_get() [all …]
|
| /kernel/linux/linux-5.10/Documentation/power/ |
| D | energy-model.rst | 1 .. SPDX-License-Identifier: GPL-2.0 8 ----------- 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 +---------------------+ 38 +---------------------+ [all …]
|
| D | opp.rst | 5 (C) 2009-2010 Nishanth Menon <nm@ti.com>, Texas Instruments Incorporated 20 ------------------------------------------------- 22 Complex SoCs of today consists of a multiple sub-modules working in conjunction. 25 facilitate this, sub-modules in a SoC are grouped into domains, allowing some 30 the device will support per domain are called Operating Performance Points or 41 - {300000000, 1000000} 42 - {800000000, 1200000} 43 - {1000000000, 1300000} 46 ---------------------------------------- 57 (users) -> registers a set of default OPPs -> (library) [all …]
|
| /kernel/linux/linux-6.6/drivers/net/wireless/ath/ |
| D | dfs_pattern_detector.c | 25 * struct radar_types - contains array of patterns defined for one DFS domain 38 #define PPB_THRESH_RATE(PPB, RATE) ((PPB * RATE + 100 - RATE) / 100) 43 #define WIDTH_LOWER(X) ((X*(100-WIDTH_TOLERANCE)+50)/100) 49 (PRF2PRI(PMAX) - PRI_TOLERANCE), \ 54 /* radar types as defined by ETSI EN-301-893 v1.5.1 */ 74 PMIN - PRI_TOLERANCE, \ 106 PMIN - PRI_TOLERANCE, \ 135 * get_dfs_domain_radar_types() - get radar types for a given DFS domain 138 * Return value: radar_types ptr on success, NULL if DFS domain is not supported 145 if (dfs_domains[i]->region == region) in get_dfs_domain_radar_types() [all …]
|
| /kernel/linux/linux-6.6/arch/arm/mach-omap2/ |
| D | omap_opp_data.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 5 * Copyright (C) 2009-2010 Texas Instruments Incorporated - https://www.ti.com/ 25 * struct omap_opp_def - OMAP OPP Definition 26 * @hwmod_name: Name of the hwmod for this domain 27 * @freq: Frequency in hertz corresponding to this OPP 29 * @default_available: True/false - is this OPP available by default 32 * pairs that the device will support per voltage domain. This is called 35 * domain, you can have a set of {frequency, voltage} pairs and this is denoted 39 * which belongs to a voltage domain may define their own set of OPPs on top 40 * of this - but this is handled by the appropriate driver. [all …]
|
| /kernel/linux/linux-5.10/arch/arm/mach-omap2/ |
| D | omap_opp_data.h | 4 * Copyright (C) 2009-2010 Texas Instruments Incorporated - https://www.ti.com/ 33 * struct omap_opp_def - OMAP OPP Definition 34 * @hwmod_name: Name of the hwmod for this domain 35 * @freq: Frequency in hertz corresponding to this OPP 37 * @default_available: True/false - is this OPP available by default 40 * pairs that the device will support per voltage domain. This is called 43 * domain, you can have a set of {frequency, voltage} pairs and this is denoted 47 * which belongs to a voltage domain may define their own set of OPPs on top 48 * of this - but this is handled by the appropriate driver. 53 unsigned long freq; member [all …]
|
| /kernel/linux/linux-6.6/drivers/cpufreq/ |
| D | qcom-cpufreq-hw.c | 1 // SPDX-License-Identifier: GPL-2.0 7 #include <linux/clk-provider.h> 49 * Mutex to synchronize between de-init sequence and re-starting LMh 79 dev = get_cpu_device(policy->cpu); in qcom_cpufreq_set_bw() 81 return -ENODEV; in qcom_cpufreq_set_bw() 105 dev_err(cpu_dev, "Voltage update failed freq=%ld\n", freq_khz); in qcom_cpufreq_update_opp() 115 struct qcom_cpufreq_data *data = policy->driver_data; in qcom_cpufreq_hw_target_index() 117 unsigned long freq = policy->freq_table[index].frequency; in qcom_cpufreq_hw_target_index() local 120 writel_relaxed(index, data->base + soc_data->reg_perf_state); in qcom_cpufreq_hw_target_index() 122 if (data->per_core_dcvs) in qcom_cpufreq_hw_target_index() [all …]
|
| D | scmi-cpufreq.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (C) 2018-2021 ARM Ltd. 11 #include <linux/clk-provider.h> 45 priv = policy->driver_data; in scmi_cpufreq_get_rate() 47 ret = perf_ops->freq_get(ph, priv->domain_id, &rate, false); in scmi_cpufreq_get_rate() 54 * perf_ops->freq_set is not a synchronous, the actual OPP change will 61 struct scmi_data *priv = policy->driver_data; in scmi_cpufreq_set_target() 62 u64 freq = policy->freq_table[index].frequency; in scmi_cpufreq_set_target() local 64 return perf_ops->freq_set(ph, priv->domain_id, freq * 1000, false); in scmi_cpufreq_set_target() 70 struct scmi_data *priv = policy->driver_data; in scmi_cpufreq_fast_switch() [all …]
|
| /kernel/linux/linux-6.6/Documentation/power/ |
| D | energy-model.rst | 1 .. SPDX-License-Identifier: GPL-2.0 8 ----------- 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. 36 an 'abstract scale' deriving real energy in micro-Joules would not be possible. [all …]
|
| D | opp.rst | 5 (C) 2009-2010 Nishanth Menon <nm@ti.com>, Texas Instruments Incorporated 20 ------------------------------------------------- 22 Complex SoCs of today consists of a multiple sub-modules working in conjunction. 25 facilitate this, sub-modules in a SoC are grouped into domains, allowing some 30 the device will support per domain are called Operating Performance Points or 41 - {300000000, 1000000} 42 - {800000000, 1200000} 43 - {1000000000, 1300000} 46 ---------------------------------------- 57 (users) -> registers a set of default OPPs -> (library) [all …]
|
| /kernel/linux/linux-6.6/arch/arm64/boot/dts/qcom/ |
| D | sdx75.dtsi | 1 // SPDX-License-Identifier: BSD-3-Clause 9 #include <dt-bindings/clock/qcom,rpmh.h> 10 #include <dt-bindings/clock/qcom,sdx75-gcc.h> 11 #include <dt-bindings/interrupt-controller/arm-gic.h> 12 #include <dt-bindings/power/qcom,rpmhpd.h> 13 #include <dt-bindings/power/qcom-rpmpd.h> 14 #include <dt-bindings/soc/qcom,rpmh-rsc.h> 17 #address-cells = <2>; 18 #size-cells = <2>; 19 interrupt-parent = <&intc>; [all …]
|
| D | sdm670.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 9 #include <dt-bindings/clock/qcom,gcc-sdm845.h> 10 #include <dt-bindings/clock/qcom,rpmh.h> 11 #include <dt-bindings/dma/qcom-gpi.h> 12 #include <dt-bindings/gpio/gpio.h> 13 #include <dt-bindings/interconnect/qcom,osm-l3.h> 14 #include <dt-bindings/interconnect/qcom,sdm670-rpmh.h> 15 #include <dt-bindings/interrupt-controller/arm-gic.h> 16 #include <dt-bindings/phy/phy-qcom-qusb2.h> 17 #include <dt-bindings/power/qcom-rpmpd.h> [all …]
|
| /kernel/linux/linux-5.10/net/wireless/ |
| D | reg.h | 7 * Copyright 2008-2011 Luis R. Rodriguez <mcgrof@qca.qualcomm.com> 40 * regulatory_hint_indoor - hint operation in indoor env. or not 48 * regulatory_netlink_notify - notify on released netlink socket 69 * regulatory_hint_found_beacon - hints a beacon was found on a channel 77 * world roaming -- when we do not know our current location. This is 79 * 1-11 are already enabled by the world regulatory domain; and on 80 * non-radar 5 GHz channels. 84 * set the wiphy->disable_beacon_hints to true. 91 * regulatory_hint_country_ie - hints a country IE as a regulatory domain 117 * regulatory_hint_disconnect - informs all devices have been disconnected [all …]
|
| /kernel/linux/linux-6.6/net/wireless/ |
| D | reg.h | 7 * Copyright 2008-2011 Luis R. Rodriguez <mcgrof@qca.qualcomm.com> 40 * regulatory_hint_indoor - hint operation in indoor env. or not 48 * regulatory_netlink_notify - notify on released netlink socket 68 * regulatory_hint_found_beacon - hints a beacon was found on a channel 76 * world roaming -- when we do not know our current location. This is 78 * 1-11 are already enabled by the world regulatory domain; and on 79 * non-radar 5 GHz channels. 83 * set the wiphy->disable_beacon_hints to true. 90 * regulatory_hint_country_ie - hints a country IE as a regulatory domain 116 * regulatory_hint_disconnect - informs all devices have been disconnected [all …]
|