Kconfig 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. menu "CPU Frequency scaling"
  2. config CPU_FREQ
  3. bool "CPU Frequency scaling"
  4. select SRCU
  5. help
  6. CPU Frequency scaling allows you to change the clock speed of
  7. CPUs on the fly. This is a nice method to save power, because
  8. the lower the CPU clock speed, the less power the CPU consumes.
  9. Note that this driver doesn't automatically change the CPU
  10. clock speed, you need to either enable a dynamic cpufreq governor
  11. (see below) after boot, or use a userspace tool.
  12. For details, take a look at <file:Documentation/cpu-freq>.
  13. If in doubt, say N.
  14. if CPU_FREQ
  15. config CPU_FREQ_GOV_ATTR_SET
  16. bool
  17. config CPU_FREQ_GOV_COMMON
  18. select CPU_FREQ_GOV_ATTR_SET
  19. select IRQ_WORK
  20. bool
  21. config CPU_FREQ_BOOST_SW
  22. bool
  23. depends on THERMAL
  24. config CPU_FREQ_STAT
  25. bool "CPU frequency transition statistics"
  26. default y
  27. help
  28. Export CPU frequency statistics information through sysfs.
  29. If in doubt, say N.
  30. config CPU_FREQ_STAT_DETAILS
  31. bool "CPU frequency transition statistics details"
  32. depends on CPU_FREQ_STAT
  33. help
  34. Show detailed CPU frequency transition table in sysfs.
  35. If in doubt, say N.
  36. choice
  37. prompt "Default CPUFreq governor"
  38. default CPU_FREQ_DEFAULT_GOV_USERSPACE if ARM_SA1100_CPUFREQ || ARM_SA1110_CPUFREQ
  39. default CPU_FREQ_DEFAULT_GOV_PERFORMANCE
  40. help
  41. This option sets which CPUFreq governor shall be loaded at
  42. startup. If in doubt, select 'performance'.
  43. config CPU_FREQ_DEFAULT_GOV_PERFORMANCE
  44. bool "performance"
  45. select CPU_FREQ_GOV_PERFORMANCE
  46. help
  47. Use the CPUFreq governor 'performance' as default. This sets
  48. the frequency statically to the highest frequency supported by
  49. the CPU.
  50. config CPU_FREQ_DEFAULT_GOV_POWERSAVE
  51. bool "powersave"
  52. select CPU_FREQ_GOV_POWERSAVE
  53. help
  54. Use the CPUFreq governor 'powersave' as default. This sets
  55. the frequency statically to the lowest frequency supported by
  56. the CPU.
  57. config CPU_FREQ_DEFAULT_GOV_USERSPACE
  58. bool "userspace"
  59. select CPU_FREQ_GOV_USERSPACE
  60. help
  61. Use the CPUFreq governor 'userspace' as default. This allows
  62. you to set the CPU frequency manually or when a userspace
  63. program shall be able to set the CPU dynamically without having
  64. to enable the userspace governor manually.
  65. config CPU_FREQ_DEFAULT_GOV_ONDEMAND
  66. bool "ondemand"
  67. select CPU_FREQ_GOV_ONDEMAND
  68. select CPU_FREQ_GOV_PERFORMANCE
  69. help
  70. Use the CPUFreq governor 'ondemand' as default. This allows
  71. you to get a full dynamic frequency capable system by simply
  72. loading your cpufreq low-level hardware driver.
  73. Be aware that not all cpufreq drivers support the ondemand
  74. governor. If unsure have a look at the help section of the
  75. driver. Fallback governor will be the performance governor.
  76. config CPU_FREQ_DEFAULT_GOV_CONSERVATIVE
  77. bool "conservative"
  78. select CPU_FREQ_GOV_CONSERVATIVE
  79. select CPU_FREQ_GOV_PERFORMANCE
  80. help
  81. Use the CPUFreq governor 'conservative' as default. This allows
  82. you to get a full dynamic frequency capable system by simply
  83. loading your cpufreq low-level hardware driver.
  84. Be aware that not all cpufreq drivers support the conservative
  85. governor. If unsure have a look at the help section of the
  86. driver. Fallback governor will be the performance governor.
  87. config CPU_FREQ_DEFAULT_GOV_SCHEDUTIL
  88. bool "schedutil"
  89. depends on SMP
  90. select CPU_FREQ_GOV_SCHEDUTIL
  91. select CPU_FREQ_GOV_PERFORMANCE
  92. help
  93. Use the 'schedutil' CPUFreq governor by default. If unsure,
  94. have a look at the help section of that governor. The fallback
  95. governor will be 'performance'.
  96. endchoice
  97. config CPU_FREQ_GOV_PERFORMANCE
  98. tristate "'performance' governor"
  99. help
  100. This cpufreq governor sets the frequency statically to the
  101. highest available CPU frequency.
  102. To compile this driver as a module, choose M here: the
  103. module will be called cpufreq_performance.
  104. If in doubt, say Y.
  105. config CPU_FREQ_GOV_POWERSAVE
  106. tristate "'powersave' governor"
  107. help
  108. This cpufreq governor sets the frequency statically to the
  109. lowest available CPU frequency.
  110. To compile this driver as a module, choose M here: the
  111. module will be called cpufreq_powersave.
  112. If in doubt, say Y.
  113. config CPU_FREQ_GOV_USERSPACE
  114. tristate "'userspace' governor for userspace frequency scaling"
  115. help
  116. Enable this cpufreq governor when you either want to set the
  117. CPU frequency manually or when a userspace program shall
  118. be able to set the CPU dynamically, like on LART
  119. <http://www.lartmaker.nl/>.
  120. To compile this driver as a module, choose M here: the
  121. module will be called cpufreq_userspace.
  122. For details, take a look at <file:Documentation/cpu-freq/>.
  123. If in doubt, say Y.
  124. config CPU_FREQ_GOV_ONDEMAND
  125. tristate "'ondemand' cpufreq policy governor"
  126. select CPU_FREQ_GOV_COMMON
  127. help
  128. 'ondemand' - This driver adds a dynamic cpufreq policy governor.
  129. The governor does a periodic polling and
  130. changes frequency based on the CPU utilization.
  131. The support for this governor depends on CPU capability to
  132. do fast frequency switching (i.e, very low latency frequency
  133. transitions).
  134. To compile this driver as a module, choose M here: the
  135. module will be called cpufreq_ondemand.
  136. For details, take a look at linux/Documentation/cpu-freq.
  137. If in doubt, say N.
  138. config CPU_FREQ_GOV_CONSERVATIVE
  139. tristate "'conservative' cpufreq governor"
  140. depends on CPU_FREQ
  141. select CPU_FREQ_GOV_COMMON
  142. help
  143. 'conservative' - this driver is rather similar to the 'ondemand'
  144. governor both in its source code and its purpose, the difference is
  145. its optimisation for better suitability in a battery powered
  146. environment. The frequency is gracefully increased and decreased
  147. rather than jumping to 100% when speed is required.
  148. If you have a desktop machine then you should really be considering
  149. the 'ondemand' governor instead, however if you are using a laptop,
  150. PDA or even an AMD64 based computer (due to the unacceptable
  151. step-by-step latency issues between the minimum and maximum frequency
  152. transitions in the CPU) you will probably want to use this governor.
  153. To compile this driver as a module, choose M here: the
  154. module will be called cpufreq_conservative.
  155. For details, take a look at linux/Documentation/cpu-freq.
  156. If in doubt, say N.
  157. config CPU_FREQ_GOV_SCHEDUTIL
  158. tristate "'schedutil' cpufreq policy governor"
  159. depends on CPU_FREQ && SMP
  160. select CPU_FREQ_GOV_ATTR_SET
  161. select IRQ_WORK
  162. help
  163. This governor makes decisions based on the utilization data provided
  164. by the scheduler. It sets the CPU frequency to be proportional to
  165. the utilization/capacity ratio coming from the scheduler. If the
  166. utilization is frequency-invariant, the new frequency is also
  167. proportional to the maximum available frequency. If that is not the
  168. case, it is proportional to the current frequency of the CPU. The
  169. frequency tipping point is at utilization/capacity equal to 80% in
  170. both cases.
  171. To compile this driver as a module, choose M here: the module will
  172. be called cpufreq_schedutil.
  173. If in doubt, say N.
  174. comment "CPU frequency scaling drivers"
  175. config CPUFREQ_DT
  176. tristate "Generic DT based cpufreq driver"
  177. depends on HAVE_CLK && OF
  178. # if CPU_THERMAL is on and THERMAL=m, CPUFREQ_DT cannot be =y:
  179. depends on !CPU_THERMAL || THERMAL
  180. select CPUFREQ_DT_PLATDEV
  181. select PM_OPP
  182. help
  183. This adds a generic DT based cpufreq driver for frequency management.
  184. It supports both uniprocessor (UP) and symmetric multiprocessor (SMP)
  185. systems which share clock and voltage across all CPUs.
  186. If in doubt, say N.
  187. config CPUFREQ_DT_PLATDEV
  188. bool
  189. help
  190. This adds a generic DT based cpufreq platdev driver for frequency
  191. management. This creates a 'cpufreq-dt' platform device, on the
  192. supported platforms.
  193. If in doubt, say N.
  194. if X86
  195. source "drivers/cpufreq/Kconfig.x86"
  196. endif
  197. if ARM || ARM64
  198. source "drivers/cpufreq/Kconfig.arm"
  199. endif
  200. if PPC32 || PPC64
  201. source "drivers/cpufreq/Kconfig.powerpc"
  202. endif
  203. if AVR32
  204. config AVR32_AT32AP_CPUFREQ
  205. bool "CPU frequency driver for AT32AP"
  206. depends on PLATFORM_AT32AP
  207. default n
  208. help
  209. This enables the CPU frequency driver for AT32AP processors.
  210. If in doubt, say N.
  211. endif
  212. if IA64
  213. config IA64_ACPI_CPUFREQ
  214. tristate "ACPI Processor P-States driver"
  215. depends on ACPI_PROCESSOR
  216. help
  217. This driver adds a CPUFreq driver which utilizes the ACPI
  218. Processor Performance States.
  219. For details, take a look at <file:Documentation/cpu-freq/>.
  220. If in doubt, say N.
  221. endif
  222. if MIPS
  223. config LOONGSON2_CPUFREQ
  224. tristate "Loongson2 CPUFreq Driver"
  225. help
  226. This option adds a CPUFreq driver for loongson processors which
  227. support software configurable cpu frequency.
  228. Loongson2F and it's successors support this feature.
  229. For details, take a look at <file:Documentation/cpu-freq/>.
  230. If in doubt, say N.
  231. config LOONGSON1_CPUFREQ
  232. tristate "Loongson1 CPUFreq Driver"
  233. help
  234. This option adds a CPUFreq driver for loongson1 processors which
  235. support software configurable cpu frequency.
  236. For details, take a look at <file:Documentation/cpu-freq/>.
  237. If in doubt, say N.
  238. endif
  239. if SPARC64
  240. config SPARC_US3_CPUFREQ
  241. tristate "UltraSPARC-III CPU Frequency driver"
  242. help
  243. This adds the CPUFreq driver for UltraSPARC-III processors.
  244. For details, take a look at <file:Documentation/cpu-freq>.
  245. If in doubt, say N.
  246. config SPARC_US2E_CPUFREQ
  247. tristate "UltraSPARC-IIe CPU Frequency driver"
  248. help
  249. This adds the CPUFreq driver for UltraSPARC-IIe processors.
  250. For details, take a look at <file:Documentation/cpu-freq>.
  251. If in doubt, say N.
  252. endif
  253. if SUPERH
  254. config SH_CPU_FREQ
  255. tristate "SuperH CPU Frequency driver"
  256. help
  257. This adds the cpufreq driver for SuperH. Any CPU that supports
  258. clock rate rounding through the clock framework can use this
  259. driver. While it will make the kernel slightly larger, this is
  260. harmless for CPUs that don't support rate rounding. The driver
  261. will also generate a notice in the boot log before disabling
  262. itself if the CPU in question is not capable of rate rounding.
  263. For details, take a look at <file:Documentation/cpu-freq>.
  264. If unsure, say N.
  265. endif
  266. config QORIQ_CPUFREQ
  267. tristate "CPU frequency scaling driver for Freescale QorIQ SoCs"
  268. depends on OF && COMMON_CLK && (PPC_E500MC || ARM)
  269. depends on !CPU_THERMAL || THERMAL
  270. select CLK_QORIQ
  271. help
  272. This adds the CPUFreq driver support for Freescale QorIQ SoCs
  273. which are capable of changing the CPU's frequency dynamically.
  274. endif
  275. endmenu