Commit 0807ee0f authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

Merge branch 'pm-cpufreq'

* pm-cpufreq: (37 commits)
  cpufreq: Add Tegra186 cpufreq driver
  cpufreq: imx6q: Fix error handling code
  cpufreq: imx6q: Set max suspend_freq to avoid changes during suspend
  cpufreq: imx6q: Fix handling EPROBE_DEFER from regulator
  cpufreq: schedutil: Use policy-dependent transition delays
  cpufreq: schedutil: Reduce frequencies slower
  cpufreq: intel_pstate: Add support for Gemini Lake
  cpufreq: intel_pstate: Eliminate intel_pstate_get_min_max()
  cpufreq: intel_pstate: Do not walk policy->cpus
  cpufreq: intel_pstate: Introduce pid_in_use()
  cpufreq: intel_pstate: Drop struct cpu_defaults
  cpufreq: intel_pstate: Move cpu_defaults definitions
  cpufreq: intel_pstate: Add update_util callback to pstate_funcs
  cpufreq: intel_pstate: Use different utilization update callbacks
  cpufreq: intel_pstate: Modify check in intel_pstate_update_status()
  cpufreq: intel_pstate: Drop driver_registered variable
  cpufreq: intel_pstate: Skip unnecessary PID resets on init
  cpufreq: intel_pstate: Set HWP sampling interval once
  cpufreq: intel_pstate: Clean up intel_pstate_busy_pid_reset()
  cpufreq: intel_pstate: Fold intel_pstate_reset_all_pid() into the caller
  ...
parents 5a7ad114 2addac72
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -3463,6 +3463,7 @@ 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)
B:	https://bugzilla.kernel.org
F:	Documentation/cpu-freq/
F:	Documentation/devicetree/bindings/cpufreq/
F:	drivers/cpufreq/
F:	include/linux/cpufreq.h
F:	tools/testing/selftests/cpufreq/
+0 −5
Original line number Diff line number Diff line
@@ -1189,11 +1189,6 @@
			status = "disabled";
		};

		cpufreq-cooling {
			compatible = "stericsson,db8500-cpufreq-cooling";
			status = "disabled";
		};

		mcde@a0350000 {
			compatible = "stericsson,mcde";
			reg = <0xa0350000 0x1000>, /* MCDE */
+6 −0
Original line number Diff line number Diff line
@@ -247,6 +247,12 @@ config ARM_TEGRA124_CPUFREQ
	help
	  This adds the CPUFreq driver support for Tegra124 SOCs.

config ARM_TEGRA186_CPUFREQ
	tristate "Tegra186 CPUFreq support"
	depends on ARCH_TEGRA && TEGRA_BPMP
	help
	  This adds the CPUFreq driver support for Tegra186 SOCs.

config ARM_TI_CPUFREQ
	bool "Texas Instruments CPUFreq support"
	depends on ARCH_OMAP2PLUS
+1 −0
Original line number Diff line number Diff line
@@ -77,6 +77,7 @@ obj-$(CONFIG_ARM_SPEAR_CPUFREQ) += spear-cpufreq.o
obj-$(CONFIG_ARM_STI_CPUFREQ)		+= sti-cpufreq.o
obj-$(CONFIG_ARM_TEGRA20_CPUFREQ)	+= tegra20-cpufreq.o
obj-$(CONFIG_ARM_TEGRA124_CPUFREQ)	+= tegra124-cpufreq.o
obj-$(CONFIG_ARM_TEGRA186_CPUFREQ)	+= tegra186-cpufreq.o
obj-$(CONFIG_ARM_TI_CPUFREQ)		+= ti-cpufreq.o
obj-$(CONFIG_ARM_VEXPRESS_SPC_CPUFREQ)	+= vexpress-spc-cpufreq.o
obj-$(CONFIG_ACPI_CPPC_CPUFREQ) += cppc_cpufreq.o
+20 −0
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/cpufreq.h>
#include <linux/cpu_cooling.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/platform_device.h>
@@ -18,6 +19,7 @@

static struct cpufreq_frequency_table *freq_table;
static struct clk *armss_clk;
static struct thermal_cooling_device *cdev;

static int dbx500_cpufreq_target(struct cpufreq_policy *policy,
				unsigned int index)
@@ -32,6 +34,22 @@ static int dbx500_cpufreq_init(struct cpufreq_policy *policy)
	return cpufreq_generic_init(policy, freq_table, 20 * 1000);
}

static int dbx500_cpufreq_exit(struct cpufreq_policy *policy)
{
	if (!IS_ERR(cdev))
		cpufreq_cooling_unregister(cdev);
	return 0;
}

static void dbx500_cpufreq_ready(struct cpufreq_policy *policy)
{
	cdev = cpufreq_cooling_register(policy->cpus);
	if (IS_ERR(cdev))
		pr_err("Failed to register cooling device %ld\n", PTR_ERR(cdev));
	else
		pr_info("Cooling device registered: %s\n", cdev->type);
}

static struct cpufreq_driver dbx500_cpufreq_driver = {
	.flags  = CPUFREQ_STICKY | CPUFREQ_CONST_LOOPS |
			CPUFREQ_NEED_INITIAL_FREQ_CHECK,
@@ -39,6 +57,8 @@ static struct cpufreq_driver dbx500_cpufreq_driver = {
	.target_index = dbx500_cpufreq_target,
	.get    = cpufreq_generic_get,
	.init   = dbx500_cpufreq_init,
	.exit  = dbx500_cpufreq_exit,
	.ready  = dbx500_cpufreq_ready,
	.name   = "DBX500",
	.attr   = cpufreq_generic_attr,
};
Loading