diff options
author | Thomas Renninger <trenn@suse.de> | 2010-11-03 12:06:14 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2011-01-12 12:47:30 -0500 |
commit | d18960494f65ca4fa0d67c865aaca99452070d15 (patch) | |
tree | 93c37d0dd4bf8c254b312f75eb97f54077a9baed /drivers/idle | |
parent | d8c216cfa57e8a579f41729cbb88c97835d9ac8d (diff) |
ACPI, intel_idle: Cleanup idle= internal variables
Having four variables for the same thing:
idle_halt, idle_nomwait, force_mwait and boot_option_idle_overrides
is rather confusing and unnecessary complex.
if idle= boot param is passed, only set up one variable:
boot_option_idle_overrides
Introduces following functional changes/fixes:
- intel_idle driver does not register if any idle=xy
boot param is passed.
- processor_idle.c will also not register a cpuidle driver
and get active if idle=halt is passed.
Before a cpuidle driver with one (C1, halt) state got registered
Now the default_idle function will be used which finally uses
the same idle call to enter sleep state (safe_halt()), but
without registering a whole cpuidle driver.
That means idle= param will always avoid cpuidle drivers to register
with one exception (same behavior as before):
idle=nomwait
may still register acpi_idle cpuidle driver, but C1 will not use
mwait, but hlt. This can be a workaround for IO based deeper sleep
states where C1 mwait causes problems.
Signed-off-by: Thomas Renninger <trenn@suse.de>
cc: x86@kernel.org
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/idle')
-rw-r--r-- | drivers/idle/intel_idle.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c index 94a652625ae2..21d387132dbc 100644 --- a/drivers/idle/intel_idle.c +++ b/drivers/idle/intel_idle.c | |||
@@ -404,6 +404,10 @@ static int __init intel_idle_init(void) | |||
404 | { | 404 | { |
405 | int retval; | 405 | int retval; |
406 | 406 | ||
407 | /* Do not load intel_idle at all for now if idle= is passed */ | ||
408 | if (boot_option_idle_override != IDLE_NO_OVERRIDE) | ||
409 | return -ENODEV; | ||
410 | |||
407 | retval = intel_idle_probe(); | 411 | retval = intel_idle_probe(); |
408 | if (retval) | 412 | if (retval) |
409 | return retval; | 413 | return retval; |