aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/cpu-freq/cpu-drivers.txt8
-rw-r--r--drivers/cpufreq/cpufreq.c2
-rw-r--r--include/linux/cpufreq.h1
3 files changed, 10 insertions, 1 deletions
diff --git a/Documentation/cpu-freq/cpu-drivers.txt b/Documentation/cpu-freq/cpu-drivers.txt
index 8b1a4451422e..48da5fdcb9f1 100644
--- a/Documentation/cpu-freq/cpu-drivers.txt
+++ b/Documentation/cpu-freq/cpu-drivers.txt
@@ -61,7 +61,13 @@ target_index - See below on the differences.
61 61
62And optionally 62And optionally
63 63
64cpufreq_driver.exit - A pointer to a per-CPU cleanup function. 64cpufreq_driver.exit - A pointer to a per-CPU cleanup
65 function called during CPU_POST_DEAD
66 phase of cpu hotplug process.
67
68cpufreq_driver.stop_cpu - A pointer to a per-CPU stop function
69 called during CPU_DOWN_PREPARE phase of
70 cpu hotplug process.
65 71
66cpufreq_driver.resume - A pointer to a per-CPU resume function 72cpufreq_driver.resume - A pointer to a per-CPU resume function
67 which is called with interrupts disabled 73 which is called with interrupts disabled
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 3c56c4759aa1..3aa7a7a226b3 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -1337,6 +1337,8 @@ static int __cpufreq_remove_dev_prepare(struct device *dev,
1337 pr_debug("%s: policy Kobject moved to cpu: %d from: %d\n", 1337 pr_debug("%s: policy Kobject moved to cpu: %d from: %d\n",
1338 __func__, new_cpu, cpu); 1338 __func__, new_cpu, cpu);
1339 } 1339 }
1340 } else if (cpufreq_driver->stop_cpu && cpufreq_driver->setpolicy) {
1341 cpufreq_driver->stop_cpu(policy);
1340 } 1342 }
1341 1343
1342 return 0; 1344 return 0;
diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
index 70929bcf1a9d..2d2e62c8666a 100644
--- a/include/linux/cpufreq.h
+++ b/include/linux/cpufreq.h
@@ -227,6 +227,7 @@ struct cpufreq_driver {
227 int (*bios_limit) (int cpu, unsigned int *limit); 227 int (*bios_limit) (int cpu, unsigned int *limit);
228 228
229 int (*exit) (struct cpufreq_policy *policy); 229 int (*exit) (struct cpufreq_policy *policy);
230 void (*stop_cpu) (struct cpufreq_policy *policy);
230 int (*suspend) (struct cpufreq_policy *policy); 231 int (*suspend) (struct cpufreq_policy *policy);
231 int (*resume) (struct cpufreq_policy *policy); 232 int (*resume) (struct cpufreq_policy *policy);
232 struct freq_attr **attr; 233 struct freq_attr **attr;