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