Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 26717172 authored by Len Brown's avatar Len Brown
Browse files

intel_idle: native hardware cpuidle driver for latest Intel processors



This EXPERIMENTAL driver supersedes acpi_idle on
Intel Atom Processors, Intel Core i3/i5/i7 Processors
and associated Intel Xeon processors.

It does not support the Intel Core2 processor or earlier.

For kernels configured with ACPI, CONFIG_INTEL_IDLE=y
allows intel_idle to probe before the ACPI processor driver.
Booting with "intel_idle.max_cstate=0" disables intel_idle
and the system will fall back on ACPI's "acpi_idle".

Typical Linux distributions load ACPI processor module early,
making CONFIG_INTEL_IDLE=m not easily useful on ACPI platforms.

intel_idle probes all processors at module_init time.
Processors that are hot-added later will be limited
to using C1 in idle.

Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent 02cf4f98
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -2850,6 +2850,13 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git
S:	Maintained
F:	drivers/input/

INTEL IDLE DRIVER
M:	Len Brown <lenb@kernel.org>
L:	linux-pm@lists.linux-foundation.org
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6.git
S:	Supported
F:	drivers/idle/intel_idle.c

INTEL FRAMEBUFFER DRIVER (excluding 810 and 815)
M:	Maik Broemme <mbroemme@plusserver.de>
L:	linux-fbdev@vger.kernel.org
+1 −1
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ obj-$(CONFIG_PCI) += pci/
obj-$(CONFIG_PARISC)		+= parisc/
obj-$(CONFIG_RAPIDIO)		+= rapidio/
obj-y				+= video/
obj-y				+= idle/
obj-$(CONFIG_ACPI)		+= acpi/
obj-$(CONFIG_SFI)		+= sfi/
# PnP must come after ACPI since it will eventually need to check if acpi
@@ -91,7 +92,6 @@ obj-$(CONFIG_EISA) += eisa/
obj-y				+= lguest/
obj-$(CONFIG_CPU_FREQ)		+= cpufreq/
obj-$(CONFIG_CPU_IDLE)		+= cpuidle/
obj-y				+= idle/
obj-$(CONFIG_MMC)		+= mmc/
obj-$(CONFIG_MEMSTICK)		+= memstick/
obj-$(CONFIG_NEW_LEDS)		+= leds/
+5 −1
Original line number Diff line number Diff line
@@ -922,9 +922,13 @@ static int __init acpi_processor_init(void)
		return -ENOMEM;
#endif

	if (!cpuidle_register_driver(&acpi_idle_driver))
	if (!cpuidle_register_driver(&acpi_idle_driver)) {
		printk(KERN_DEBUG "ACPI: %s registered with cpuidle\n",
			acpi_idle_driver.name);
	} else {
		printk(KERN_DEBUG "ACPI: acpi_idle yielding to %s",
			cpuidle_get_driver()->name);
	}

	result = acpi_bus_register_driver(&acpi_processor_driver);
	if (result < 0)
+11 −0
Original line number Diff line number Diff line
config INTEL_IDLE
	tristate "Cpuidle Driver for Intel Processors"
	depends on CPU_IDLE
	depends on X86
	depends on CPU_SUP_INTEL
	depends on EXPERIMENTAL
	help
	  Enable intel_idle, a cpuidle driver that includes knowledge of
	  native Intel hardware idle features.  The acpi_idle driver
	  can be configured at the same time, in order to handle
	  processors intel_idle does not support.

menu "Memory power savings"
depends on X86_64
+1 −0
Original line number Diff line number Diff line
obj-$(CONFIG_I7300_IDLE)			+= i7300_idle.o
obj-$(CONFIG_INTEL_IDLE)			+= intel_idle.o
Loading