xref: /openbmc/linux/drivers/cpuidle/Kconfig (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
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
362cffe9f6SMarcelo Tosatticonfig CPU_IDLE_GOV_HALTPOLL
372cffe9f6SMarcelo Tosatti	bool "Haltpoll governor (for virtualized systems)"
382cffe9f6SMarcelo Tosatti	depends on KVM_GUEST
392cffe9f6SMarcelo Tosatti	help
402cffe9f6SMarcelo Tosatti	  This governor implements haltpoll idle state selection, to be
412cffe9f6SMarcelo Tosatti	  used in conjunction with the haltpoll cpuidle driver, allowing
422cffe9f6SMarcelo Tosatti	  for polling for a certain amount of time before entering idle
432cffe9f6SMarcelo Tosatti	  state.
442cffe9f6SMarcelo Tosatti
452cffe9f6SMarcelo Tosatti	  Some virtualized workloads benefit from using it.
462cffe9f6SMarcelo Tosatti
479f14da34SLorenzo Pieralisiconfig DT_IDLE_STATES
489f14da34SLorenzo Pieralisi	bool
499f14da34SLorenzo Pieralisi
509d976d67SAnup Patelconfig DT_IDLE_GENPD
519d976d67SAnup Patel	depends on PM_GENERIC_DOMAINS_OF
529d976d67SAnup Patel	bool
539d976d67SAnup Patel
54b98e01adSSaharamenu "ARM CPU Idle Drivers"
550e087044SDaniel Lezcanodepends on ARM || ARM64
56b98e01adSSaharasource "drivers/cpuidle/Kconfig.arm"
57b98e01adSSaharaendmenu
58bd2a337aSMichal Simek
59d0508944SPaul Burtonmenu "MIPS CPU Idle Drivers"
60d0508944SPaul Burtondepends on MIPS
61d0508944SPaul Burtonsource "drivers/cpuidle/Kconfig.mips"
62d0508944SPaul Burtonendmenu
63d0508944SPaul Burton
64962e7bd4SDeepthi Dharwarmenu "POWERPC CPU Idle Drivers"
65962e7bd4SDeepthi Dharwardepends on PPC
66962e7bd4SDeepthi Dharwarsource "drivers/cpuidle/Kconfig.powerpc"
67962e7bd4SDeepthi Dharwarendmenu
68962e7bd4SDeepthi Dharwar
696abf32f1SAnup Patelmenu "RISC-V CPU Idle Drivers"
706abf32f1SAnup Pateldepends on RISCV
716abf32f1SAnup Patelsource "drivers/cpuidle/Kconfig.riscv"
726abf32f1SAnup Patelendmenu
736abf32f1SAnup Patel
74fa86ee90SMarcelo Tosatticonfig HALTPOLL_CPUIDLE
75fa86ee90SMarcelo Tosatti	tristate "Halt poll cpuidle driver"
76fa86ee90SMarcelo Tosatti	depends on X86 && KVM_GUEST
77*4edc13aeSLi RongQing	select CPU_IDLE_GOV_HALTPOLL
78fa86ee90SMarcelo Tosatti	default y
79fa86ee90SMarcelo Tosatti	help
80fa86ee90SMarcelo Tosatti	 This option enables halt poll cpuidle driver, which allows to poll
81fa86ee90SMarcelo Tosatti	 before halting in the guest (more efficient than polling in the
82fa86ee90SMarcelo Tosatti	 host via halt_poll_ns for some scenarios).
83fa86ee90SMarcelo Tosatti
84be6a98d3SRob Herringendif
85b39b0981SDaniel Lezcano
86b39b0981SDaniel Lezcanoconfig ARCH_NEEDS_CPU_IDLE_COUPLED
87b39b0981SDaniel Lezcano	def_bool n
88b98e01adSSaharaendmenu
89