Loading MAINTAINERS +7 −6 Original line number Diff line number Diff line Loading @@ -1737,6 +1737,7 @@ F: arch/arm/configs/mvebu_*_defconfig F: arch/arm/mach-mvebu/ F: arch/arm64/boot/dts/marvell/armada* F: drivers/cpufreq/armada-37xx-cpufreq.c F: drivers/cpufreq/armada-8k-cpufreq.c F: drivers/cpufreq/mvebu-cpufreq.c F: drivers/irqchip/irq-armada-370-xp.c F: drivers/irqchip/irq-mvebu-* Loading Loading @@ -3961,7 +3962,7 @@ M: Viresh Kumar <viresh.kumar@linaro.org> L: linux-pm@vger.kernel.org S: Maintained T: git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git T: git git://git.linaro.org/people/vireshk/linux.git (For ARM Updates) T: git git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm.git (For ARM Updates) B: https://bugzilla.kernel.org F: Documentation/admin-guide/pm/cpufreq.rst F: Documentation/admin-guide/pm/intel_pstate.rst Loading Loading @@ -12604,7 +12605,7 @@ F: Documentation/media/v4l-drivers/qcom_camss.rst F: drivers/media/platform/qcom/camss/ QUALCOMM CPUFREQ DRIVER MSM8996/APQ8096 M: Ilia Lin <ilia.lin@gmail.com> M: Ilia Lin <ilia.lin@kernel.org> L: linux-pm@vger.kernel.org S: Maintained F: Documentation/devicetree/bindings/opp/kryo-cpufreq.txt Loading arch/arm/mach-davinci/da850.c +1 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include <linux/mfd/da8xx-cfgchip.h> #include <linux/platform_data/clk-da8xx-cfgchip.h> #include <linux/platform_data/clk-davinci-pll.h> #include <linux/platform_data/davinci-cpufreq.h> #include <linux/platform_data/gpio-davinci.h> #include <linux/platform_device.h> #include <linux/regmap.h> Loading @@ -29,7 +30,6 @@ #include <asm/mach/map.h> #include <mach/common.h> #include <mach/cpufreq.h> #include <mach/cputype.h> #include <mach/da8xx.h> #include <mach/irqs.h> Loading drivers/acpi/cppc_acpi.c +42 −0 Original line number Diff line number Diff line Loading @@ -1050,6 +1050,48 @@ static int cpc_write(int cpu, struct cpc_register_resource *reg_res, u64 val) return ret_val; } /** * cppc_get_desired_perf - Get the value of desired performance register. * @cpunum: CPU from which to get desired performance. * @desired_perf: address of a variable to store the returned desired performance * * Return: 0 for success, -EIO otherwise. */ int cppc_get_desired_perf(int cpunum, u64 *desired_perf) { struct cpc_desc *cpc_desc = per_cpu(cpc_desc_ptr, cpunum); int pcc_ss_id = per_cpu(cpu_pcc_subspace_idx, cpunum); struct cpc_register_resource *desired_reg; struct cppc_pcc_data *pcc_ss_data = NULL; desired_reg = &cpc_desc->cpc_regs[DESIRED_PERF]; if (CPC_IN_PCC(desired_reg)) { int ret = 0; if (pcc_ss_id < 0) return -EIO; pcc_ss_data = pcc_data[pcc_ss_id]; down_write(&pcc_ss_data->pcc_lock); if (send_pcc_cmd(pcc_ss_id, CMD_READ) >= 0) cpc_read(cpunum, desired_reg, desired_perf); else ret = -EIO; up_write(&pcc_ss_data->pcc_lock); return ret; } cpc_read(cpunum, desired_reg, desired_perf); return 0; } EXPORT_SYMBOL_GPL(cppc_get_desired_perf); /** * cppc_get_perf_caps - Get a CPUs performance capabilities. * @cpunum: CPU from which to get capabilities info. Loading drivers/cpufreq/Kconfig +0 −3 Original line number Diff line number Diff line Loading @@ -207,8 +207,6 @@ comment "CPU frequency scaling drivers" config CPUFREQ_DT tristate "Generic DT based cpufreq driver" depends on HAVE_CLK && OF # if CPU_THERMAL is on and THERMAL=m, CPUFREQ_DT cannot be =y: depends on !CPU_THERMAL || THERMAL select CPUFREQ_DT_PLATDEV select PM_OPP help Loading Loading @@ -327,7 +325,6 @@ endif config QORIQ_CPUFREQ tristate "CPU frequency scaling driver for Freescale QorIQ SoCs" depends on OF && COMMON_CLK && (PPC_E500MC || ARM || ARM64) depends on !CPU_THERMAL || THERMAL select CLK_QORIQ help This adds the CPUFreq driver support for Freescale QorIQ SoCs Loading drivers/cpufreq/Kconfig.arm +11 −5 Original line number Diff line number Diff line Loading @@ -25,12 +25,21 @@ config ARM_ARMADA_37XX_CPUFREQ This adds the CPUFreq driver support for Marvell Armada 37xx SoCs. The Armada 37xx PMU supports 4 frequency and VDD levels. config ARM_ARMADA_8K_CPUFREQ tristate "Armada 8K CPUFreq driver" depends on ARCH_MVEBU && CPUFREQ_DT help This enables the CPUFreq driver support for Marvell Armada8k SOCs. Armada8K device has the AP806 which supports scaling to any full integer divider. If in doubt, say N. # big LITTLE core layer and glue drivers config ARM_BIG_LITTLE_CPUFREQ tristate "Generic ARM big LITTLE CPUfreq driver" depends on ARM_CPU_TOPOLOGY && HAVE_CLK # if CPU_THERMAL is on and THERMAL=m, ARM_BIT_LITTLE_CPUFREQ cannot be =y depends on !CPU_THERMAL || THERMAL select PM_OPP help This enables the Generic CPUfreq driver for ARM big.LITTLE platforms. Loading @@ -38,7 +47,6 @@ config ARM_BIG_LITTLE_CPUFREQ config ARM_SCPI_CPUFREQ tristate "SCPI based CPUfreq driver" depends on ARM_SCPI_PROTOCOL && COMMON_CLK_SCPI depends on !CPU_THERMAL || THERMAL help This adds the CPUfreq driver support for ARM platforms using SCPI protocol for CPU power management. Loading Loading @@ -93,7 +101,6 @@ config ARM_KIRKWOOD_CPUFREQ config ARM_MEDIATEK_CPUFREQ tristate "CPU Frequency scaling support for MediaTek SoCs" depends on ARCH_MEDIATEK && REGULATOR depends on !CPU_THERMAL || THERMAL select PM_OPP help This adds the CPUFreq driver support for MediaTek SoCs. Loading Loading @@ -233,7 +240,6 @@ config ARM_SA1110_CPUFREQ config ARM_SCMI_CPUFREQ tristate "SCMI based CPUfreq driver" depends on ARM_SCMI_PROTOCOL || COMPILE_TEST depends on !CPU_THERMAL || THERMAL select PM_OPP help This adds the CPUfreq driver support for ARM platforms using SCMI Loading Loading
MAINTAINERS +7 −6 Original line number Diff line number Diff line Loading @@ -1737,6 +1737,7 @@ F: arch/arm/configs/mvebu_*_defconfig F: arch/arm/mach-mvebu/ F: arch/arm64/boot/dts/marvell/armada* F: drivers/cpufreq/armada-37xx-cpufreq.c F: drivers/cpufreq/armada-8k-cpufreq.c F: drivers/cpufreq/mvebu-cpufreq.c F: drivers/irqchip/irq-armada-370-xp.c F: drivers/irqchip/irq-mvebu-* Loading Loading @@ -3961,7 +3962,7 @@ M: Viresh Kumar <viresh.kumar@linaro.org> L: linux-pm@vger.kernel.org S: Maintained T: git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git T: git git://git.linaro.org/people/vireshk/linux.git (For ARM Updates) T: git git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm.git (For ARM Updates) B: https://bugzilla.kernel.org F: Documentation/admin-guide/pm/cpufreq.rst F: Documentation/admin-guide/pm/intel_pstate.rst Loading Loading @@ -12604,7 +12605,7 @@ F: Documentation/media/v4l-drivers/qcom_camss.rst F: drivers/media/platform/qcom/camss/ QUALCOMM CPUFREQ DRIVER MSM8996/APQ8096 M: Ilia Lin <ilia.lin@gmail.com> M: Ilia Lin <ilia.lin@kernel.org> L: linux-pm@vger.kernel.org S: Maintained F: Documentation/devicetree/bindings/opp/kryo-cpufreq.txt Loading
arch/arm/mach-davinci/da850.c +1 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include <linux/mfd/da8xx-cfgchip.h> #include <linux/platform_data/clk-da8xx-cfgchip.h> #include <linux/platform_data/clk-davinci-pll.h> #include <linux/platform_data/davinci-cpufreq.h> #include <linux/platform_data/gpio-davinci.h> #include <linux/platform_device.h> #include <linux/regmap.h> Loading @@ -29,7 +30,6 @@ #include <asm/mach/map.h> #include <mach/common.h> #include <mach/cpufreq.h> #include <mach/cputype.h> #include <mach/da8xx.h> #include <mach/irqs.h> Loading
drivers/acpi/cppc_acpi.c +42 −0 Original line number Diff line number Diff line Loading @@ -1050,6 +1050,48 @@ static int cpc_write(int cpu, struct cpc_register_resource *reg_res, u64 val) return ret_val; } /** * cppc_get_desired_perf - Get the value of desired performance register. * @cpunum: CPU from which to get desired performance. * @desired_perf: address of a variable to store the returned desired performance * * Return: 0 for success, -EIO otherwise. */ int cppc_get_desired_perf(int cpunum, u64 *desired_perf) { struct cpc_desc *cpc_desc = per_cpu(cpc_desc_ptr, cpunum); int pcc_ss_id = per_cpu(cpu_pcc_subspace_idx, cpunum); struct cpc_register_resource *desired_reg; struct cppc_pcc_data *pcc_ss_data = NULL; desired_reg = &cpc_desc->cpc_regs[DESIRED_PERF]; if (CPC_IN_PCC(desired_reg)) { int ret = 0; if (pcc_ss_id < 0) return -EIO; pcc_ss_data = pcc_data[pcc_ss_id]; down_write(&pcc_ss_data->pcc_lock); if (send_pcc_cmd(pcc_ss_id, CMD_READ) >= 0) cpc_read(cpunum, desired_reg, desired_perf); else ret = -EIO; up_write(&pcc_ss_data->pcc_lock); return ret; } cpc_read(cpunum, desired_reg, desired_perf); return 0; } EXPORT_SYMBOL_GPL(cppc_get_desired_perf); /** * cppc_get_perf_caps - Get a CPUs performance capabilities. * @cpunum: CPU from which to get capabilities info. Loading
drivers/cpufreq/Kconfig +0 −3 Original line number Diff line number Diff line Loading @@ -207,8 +207,6 @@ comment "CPU frequency scaling drivers" config CPUFREQ_DT tristate "Generic DT based cpufreq driver" depends on HAVE_CLK && OF # if CPU_THERMAL is on and THERMAL=m, CPUFREQ_DT cannot be =y: depends on !CPU_THERMAL || THERMAL select CPUFREQ_DT_PLATDEV select PM_OPP help Loading Loading @@ -327,7 +325,6 @@ endif config QORIQ_CPUFREQ tristate "CPU frequency scaling driver for Freescale QorIQ SoCs" depends on OF && COMMON_CLK && (PPC_E500MC || ARM || ARM64) depends on !CPU_THERMAL || THERMAL select CLK_QORIQ help This adds the CPUFreq driver support for Freescale QorIQ SoCs Loading
drivers/cpufreq/Kconfig.arm +11 −5 Original line number Diff line number Diff line Loading @@ -25,12 +25,21 @@ config ARM_ARMADA_37XX_CPUFREQ This adds the CPUFreq driver support for Marvell Armada 37xx SoCs. The Armada 37xx PMU supports 4 frequency and VDD levels. config ARM_ARMADA_8K_CPUFREQ tristate "Armada 8K CPUFreq driver" depends on ARCH_MVEBU && CPUFREQ_DT help This enables the CPUFreq driver support for Marvell Armada8k SOCs. Armada8K device has the AP806 which supports scaling to any full integer divider. If in doubt, say N. # big LITTLE core layer and glue drivers config ARM_BIG_LITTLE_CPUFREQ tristate "Generic ARM big LITTLE CPUfreq driver" depends on ARM_CPU_TOPOLOGY && HAVE_CLK # if CPU_THERMAL is on and THERMAL=m, ARM_BIT_LITTLE_CPUFREQ cannot be =y depends on !CPU_THERMAL || THERMAL select PM_OPP help This enables the Generic CPUfreq driver for ARM big.LITTLE platforms. Loading @@ -38,7 +47,6 @@ config ARM_BIG_LITTLE_CPUFREQ config ARM_SCPI_CPUFREQ tristate "SCPI based CPUfreq driver" depends on ARM_SCPI_PROTOCOL && COMMON_CLK_SCPI depends on !CPU_THERMAL || THERMAL help This adds the CPUfreq driver support for ARM platforms using SCPI protocol for CPU power management. Loading Loading @@ -93,7 +101,6 @@ config ARM_KIRKWOOD_CPUFREQ config ARM_MEDIATEK_CPUFREQ tristate "CPU Frequency scaling support for MediaTek SoCs" depends on ARCH_MEDIATEK && REGULATOR depends on !CPU_THERMAL || THERMAL select PM_OPP help This adds the CPUFreq driver support for MediaTek SoCs. Loading Loading @@ -233,7 +240,6 @@ config ARM_SA1110_CPUFREQ config ARM_SCMI_CPUFREQ tristate "SCMI based CPUfreq driver" depends on ARM_SCMI_PROTOCOL || COMPILE_TEST depends on !CPU_THERMAL || THERMAL select PM_OPP help This adds the CPUfreq driver support for ARM platforms using SCMI Loading