xref: /openbmc/linux/drivers/cpuidle/Kconfig (revision fa86ee90eb1111267de67cb4272b5ce711f18cbb)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2b98e01adSSaharamenu "CPU Idle"
34f86d3a8SLen Brown
4b98e01adSSaharaconfig CPU_IDLE
54f86d3a8SLen Brown	bool "CPU idle PM support"
6aa491ad3SBenjamin Herrenschmidt	default y if ACPI || PPC_PSERIES
7d6f346f2SDaniel Lezcano	select CPU_IDLE_GOV_LADDER if (!NO_HZ && !NO_HZ_IDLE)
8b26bf6abSRafael J. Wysocki	select CPU_IDLE_GOV_MENU if (NO_HZ || NO_HZ_IDLE) && !CPU_IDLE_GOV_TEO
94f86d3a8SLen Brown	help
104f86d3a8SLen Brown	  CPU idle is a generic framework for supporting software-controlled
114f86d3a8SLen Brown	  idle processor power management.  It includes modular cross-platform
124f86d3a8SLen Brown	  governors that can be swapped during runtime.
134f86d3a8SLen Brown
1460555e37Slen.brown@intel.com	  If you're using an ACPI-enabled platform, you should say Y here.
154f86d3a8SLen Brown
16d6f346f2SDaniel Lezcanoif CPU_IDLE
17d6f346f2SDaniel Lezcano
18bf4d1b5dSDaniel Lezcanoconfig CPU_IDLE_MULTIPLE_DRIVERS
193a4a267eSDaniel Lezcano        bool
20bf4d1b5dSDaniel Lezcano
214f86d3a8SLen Brownconfig CPU_IDLE_GOV_LADDER
22d6f346f2SDaniel Lezcano	bool "Ladder governor (for periodic timer tick)"
234f86d3a8SLen Brown
244f86d3a8SLen Brownconfig CPU_IDLE_GOV_MENU
25d6f346f2SDaniel Lezcano	bool "Menu governor (for tickless system)"
264126c019SColin Cross
27b26bf6abSRafael J. Wysockiconfig CPU_IDLE_GOV_TEO
28b26bf6abSRafael J. Wysocki	bool "Timer events oriented (TEO) governor (for tickless systems)"
29b26bf6abSRafael J. Wysocki	help
30b26bf6abSRafael J. Wysocki	  This governor implements a simplified idle state selection method
31b26bf6abSRafael J. Wysocki	  focused on timer events and does not do any interactivity boosting.
32b26bf6abSRafael J. Wysocki
33b26bf6abSRafael J. Wysocki	  Some workloads benefit from using it and it generally should be safe
34b26bf6abSRafael J. Wysocki	  to use.  Say Y here if you are not happy with the alternatives.
35b26bf6abSRafael J. Wysocki
369f14da34SLorenzo Pieralisiconfig DT_IDLE_STATES
379f14da34SLorenzo Pieralisi	bool
389f14da34SLorenzo Pieralisi
39b98e01adSSaharamenu "ARM CPU Idle Drivers"
400e087044SDaniel Lezcanodepends on ARM || ARM64
41b98e01adSSaharasource "drivers/cpuidle/Kconfig.arm"
42b98e01adSSaharaendmenu
43bd2a337aSMichal Simek
44d0508944SPaul Burtonmenu "MIPS CPU Idle Drivers"
45d0508944SPaul Burtondepends on MIPS
46d0508944SPaul Burtonsource "drivers/cpuidle/Kconfig.mips"
47d0508944SPaul Burtonendmenu
48d0508944SPaul Burton
49962e7bd4SDeepthi Dharwarmenu "POWERPC CPU Idle Drivers"
50962e7bd4SDeepthi Dharwardepends on PPC
51962e7bd4SDeepthi Dharwarsource "drivers/cpuidle/Kconfig.powerpc"
52962e7bd4SDeepthi Dharwarendmenu
53962e7bd4SDeepthi Dharwar
54*fa86ee90SMarcelo Tosatticonfig HALTPOLL_CPUIDLE
55*fa86ee90SMarcelo Tosatti       tristate "Halt poll cpuidle driver"
56*fa86ee90SMarcelo Tosatti       depends on X86 && KVM_GUEST
57*fa86ee90SMarcelo Tosatti       default y
58*fa86ee90SMarcelo Tosatti       help
59*fa86ee90SMarcelo Tosatti         This option enables halt poll cpuidle driver, which allows to poll
60*fa86ee90SMarcelo Tosatti         before halting in the guest (more efficient than polling in the
61*fa86ee90SMarcelo Tosatti         host via halt_poll_ns for some scenarios).
62*fa86ee90SMarcelo Tosatti
63be6a98d3SRob Herringendif
64b39b0981SDaniel Lezcano
65b39b0981SDaniel Lezcanoconfig ARCH_NEEDS_CPU_IDLE_COUPLED
66b39b0981SDaniel Lezcano	def_bool n
67b98e01adSSaharaendmenu
68