Commit e38ed294 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki

Merge branches 'pm-sleep', 'pm-cpuidle' and 'pm-cpufreq'

* pm-sleep:
  PM / suspend: Make cpuidle work in the "freeze" state

* pm-cpuidle:
  intel_idle: fix IVT idle state table setting

* pm-cpufreq:
  cpufreq: highbank: fix ARM_HIGHBANK_CPUFREQ dependency warning
  cpufreq: ppc: Fix integer overflow in expression
  cpufreq, powernv: Fix build failure on UP
  cpufreq: unicore32: replace IS_ERR and PTR_ERR with PTR_ERR_OR_ZERO
...@@ -92,11 +92,7 @@ config ARM_EXYNOS_CPU_FREQ_BOOST_SW ...@@ -92,11 +92,7 @@ config ARM_EXYNOS_CPU_FREQ_BOOST_SW
config ARM_HIGHBANK_CPUFREQ config ARM_HIGHBANK_CPUFREQ
tristate "Calxeda Highbank-based" tristate "Calxeda Highbank-based"
depends on ARCH_HIGHBANK depends on ARCH_HIGHBANK && GENERIC_CPUFREQ_CPU0 && REGULATOR
select GENERIC_CPUFREQ_CPU0
select PM_OPP
select REGULATOR
default m default m
help help
This adds the CPUFreq driver for Calxeda Highbank SoC This adds the CPUFreq driver for Calxeda Highbank SoC
......
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include <asm/cputhreads.h> #include <asm/cputhreads.h>
#include <asm/reg.h> #include <asm/reg.h>
#include <asm/smp.h> /* Required for cpu_sibling_mask() in UP configs */
#define POWERNV_MAX_PSTATES 256 #define POWERNV_MAX_PSTATES 256
......
...@@ -206,7 +206,7 @@ static int corenet_cpufreq_cpu_init(struct cpufreq_policy *policy) ...@@ -206,7 +206,7 @@ static int corenet_cpufreq_cpu_init(struct cpufreq_policy *policy)
per_cpu(cpu_data, i) = data; per_cpu(cpu_data, i) = data;
policy->cpuinfo.transition_latency = policy->cpuinfo.transition_latency =
(12 * NSEC_PER_SEC) / fsl_get_sys_freq(); (12ULL * NSEC_PER_SEC) / fsl_get_sys_freq();
of_node_put(np); of_node_put(np);
return 0; return 0;
......
...@@ -60,9 +60,7 @@ static int __init ucv2_cpu_init(struct cpufreq_policy *policy) ...@@ -60,9 +60,7 @@ static int __init ucv2_cpu_init(struct cpufreq_policy *policy)
policy->max = policy->cpuinfo.max_freq = 1000000; policy->max = policy->cpuinfo.max_freq = 1000000;
policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL; policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL;
policy->clk = clk_get(NULL, "MAIN_CLK"); policy->clk = clk_get(NULL, "MAIN_CLK");
if (IS_ERR(policy->clk)) return PTR_ERR_OR_ZERO(policy->clk);
return PTR_ERR(policy->clk);
return 0;
} }
static struct cpufreq_driver ucv2_driver = { static struct cpufreq_driver ucv2_driver = {
......
...@@ -750,9 +750,10 @@ void intel_idle_state_table_update(void) ...@@ -750,9 +750,10 @@ void intel_idle_state_table_update(void)
if (package_num + 1 > num_sockets) { if (package_num + 1 > num_sockets) {
num_sockets = package_num + 1; num_sockets = package_num + 1;
if (num_sockets > 4) if (num_sockets > 4) {
cpuidle_state_table = ivt_cstates_8s; cpuidle_state_table = ivt_cstates_8s;
return; return;
}
} }
} }
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/console.h> #include <linux/console.h>
#include <linux/cpu.h> #include <linux/cpu.h>
#include <linux/cpuidle.h>
#include <linux/syscalls.h> #include <linux/syscalls.h>
#include <linux/gfp.h> #include <linux/gfp.h>
#include <linux/io.h> #include <linux/io.h>
...@@ -53,7 +54,9 @@ static void freeze_begin(void) ...@@ -53,7 +54,9 @@ static void freeze_begin(void)
static void freeze_enter(void) static void freeze_enter(void)
{ {
cpuidle_resume();
wait_event(suspend_freeze_wait_head, suspend_freeze_wake); wait_event(suspend_freeze_wait_head, suspend_freeze_wake);
cpuidle_pause();
} }
void freeze_wake(void) void freeze_wake(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment