diff options
| author | Len Brown <len.brown@intel.com> | 2011-04-01 15:19:23 -0400 |
|---|---|---|
| committer | Len Brown <len.brown@intel.com> | 2011-05-29 03:39:15 -0400 |
| commit | 99c63221435963e0cee2402686ba99293c2ffa9e (patch) | |
| tree | 7c73900db0eafed36291257494c1e084de6ad034 | |
| parent | 3b70b2e5fcf6315eb833a1bcc2b810bdc75484ff (diff) | |
x86 idle APM: deprecate CONFIG_APM_CPU_IDLE
We don't want to export the pm_idle function pointer to modules.
Currently CONFIG_APM_CPU_IDLE w/ CONFIG_APM_MODULE forces us to.
CONFIG_APM_CPU_IDLE is of dubious value, it runs only on 32-bit
uniprocessor laptops that are over 10 years old. It calls into
the BIOS during idle, and is known to cause a number of machines
to fail.
Removing CONFIG_APM_CPU_IDLE and will allow us to stop exporting
pm_idle. Any systems that were calling into the APM BIOS
at run-time will simply use HLT instead.
cc: x86@kernel.org
cc: Jiri Kosina <jkosina@suse.cz>
cc: stable@kernel.org # .39.x
Signed-off-by: Len Brown <len.brown@intel.com>
| -rw-r--r-- | Documentation/feature-removal-schedule.txt | 10 | ||||
| -rw-r--r-- | arch/x86/kernel/apm_32.c | 2 |
2 files changed, 12 insertions, 0 deletions
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index 5540615ac26c..fc505c1b4762 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
| @@ -14,6 +14,16 @@ Who: Len Brown <len.brown@intel.com> | |||
| 14 | 14 | ||
| 15 | --------------------------- | 15 | --------------------------- |
| 16 | 16 | ||
| 17 | What: CONFIG_APM_CPU_IDLE, and its ability to call APM BIOS in idle | ||
| 18 | When: 2012 | ||
| 19 | Why: This optional sub-feature of APM is of dubious reliability, | ||
| 20 | and ancient APM laptops are likely better served by calling HLT. | ||
| 21 | Deleting CONFIG_APM_CPU_IDLE allows x86 to stop exporting | ||
| 22 | the pm_idle function pointer to modules. | ||
| 23 | Who: Len Brown <len.brown@intel.com> | ||
| 24 | |||
| 25 | ---------------------------- | ||
| 26 | |||
| 17 | What: PRISM54 | 27 | What: PRISM54 |
| 18 | When: 2.6.34 | 28 | When: 2.6.34 |
| 19 | 29 | ||
diff --git a/arch/x86/kernel/apm_32.c b/arch/x86/kernel/apm_32.c index 0e4f24c2a746..4c4ac32cd126 100644 --- a/arch/x86/kernel/apm_32.c +++ b/arch/x86/kernel/apm_32.c | |||
| @@ -359,6 +359,7 @@ struct apm_user { | |||
| 359 | * idle percentage above which bios idle calls are done | 359 | * idle percentage above which bios idle calls are done |
| 360 | */ | 360 | */ |
| 361 | #ifdef CONFIG_APM_CPU_IDLE | 361 | #ifdef CONFIG_APM_CPU_IDLE |
| 362 | #warning deprecated CONFIG_APM_CPU_IDLE will be deleted in 2012 | ||
| 362 | #define DEFAULT_IDLE_THRESHOLD 95 | 363 | #define DEFAULT_IDLE_THRESHOLD 95 |
| 363 | #else | 364 | #else |
| 364 | #define DEFAULT_IDLE_THRESHOLD 100 | 365 | #define DEFAULT_IDLE_THRESHOLD 100 |
| @@ -902,6 +903,7 @@ static void apm_cpu_idle(void) | |||
| 902 | unsigned int jiffies_since_last_check = jiffies - last_jiffies; | 903 | unsigned int jiffies_since_last_check = jiffies - last_jiffies; |
| 903 | unsigned int bucket; | 904 | unsigned int bucket; |
| 904 | 905 | ||
| 906 | WARN_ONCE(1, "deprecated apm_cpu_idle will be deleted in 2012"); | ||
| 905 | recalc: | 907 | recalc: |
| 906 | if (jiffies_since_last_check > IDLE_CALC_LIMIT) { | 908 | if (jiffies_since_last_check > IDLE_CALC_LIMIT) { |
| 907 | use_apm_idle = 0; | 909 | use_apm_idle = 0; |
