Skip to content

Commit

Permalink
Merge branch 'pm-cpufreq'
Browse files Browse the repository at this point in the history
* pm-cpufreq:
  cpufreq / intel_pstate: Add kernel command line option disable intel_pstate.
  cpufreq / intel_pstate: Change to disallow module build
  • Loading branch information
Rafael J. Wysocki committed Feb 17, 2013
2 parents 60a406d + 6be2649 commit fdbe094
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 6 deletions.
5 changes: 5 additions & 0 deletions Documentation/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1131,6 +1131,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
0 disables intel_idle and fall back on acpi_idle.
1 to 6 specify maximum depth of C-state.

intel_pstate= [X86]
disable
Do not enable intel_pstate as the default
scaling driver for the supported processors

intremap= [X86-64, Intel-IOMMU]
on enable Interrupt Remapping (default)
off disable Interrupt Remapping
Expand Down
7 changes: 1 addition & 6 deletions drivers/cpufreq/Kconfig.x86
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#

config X86_INTEL_PSTATE
tristate "Intel P state control"
bool "Intel P state control"
depends on X86
help
This driver provides a P state for Intel core processors.
Expand All @@ -13,11 +13,6 @@ config X86_INTEL_PSTATE
When this driver is enabled it will become the perferred
scaling driver for Sandy bridge processors.

Note: This driver should be built with the same settings as
the other scaling drivers configured into the system
(module/built-in) in order for the driver to register itself
as the scaling driver on the system.

If in doubt, say N.

config X86_PCC_CPUFREQ
Expand Down
16 changes: 16 additions & 0 deletions drivers/cpufreq/intel_pstate.c
Original file line number Diff line number Diff line change
Expand Up @@ -773,11 +773,16 @@ static void intel_pstate_exit(void)
}
module_exit(intel_pstate_exit);

static int __initdata no_load;

static int __init intel_pstate_init(void)
{
int rc = 0;
const struct x86_cpu_id *id;

if (no_load)
return -ENODEV;

id = x86_match_cpu(intel_pstate_cpu_ids);
if (!id)
return -ENODEV;
Expand All @@ -802,6 +807,17 @@ static int __init intel_pstate_init(void)
}
device_initcall(intel_pstate_init);

static int __init intel_pstate_setup(char *str)
{
if (!str)
return -EINVAL;

if (!strcmp(str, "disable"))
no_load = 1;
return 0;
}
early_param("intel_pstate", intel_pstate_setup);

MODULE_AUTHOR("Dirk Brandewie <dirk.j.brandewie@intel.com>");
MODULE_DESCRIPTION("'intel_pstate' - P state driver Intel Core processors");
MODULE_LICENSE("GPL");

0 comments on commit fdbe094

Please sign in to comment.