Merge tag 'for-4.14/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git...
[platform/kernel/linux-rpi.git] / lib / Kconfig
1 #
2 # Library configuration
3 #
4
5 config BINARY_PRINTF
6         def_bool n
7
8 menu "Library routines"
9
10 config RAID6_PQ
11         tristate
12
13 config BITREVERSE
14         tristate
15
16 config HAVE_ARCH_BITREVERSE
17         bool
18         default n
19         depends on BITREVERSE
20         help
21           This option enables the use of hardware bit-reversal instructions on
22           architectures which support such operations.
23
24 config RATIONAL
25         bool
26
27 config GENERIC_STRNCPY_FROM_USER
28         bool
29
30 config GENERIC_STRNLEN_USER
31         bool
32
33 config GENERIC_NET_UTILS
34         bool
35
36 config GENERIC_FIND_FIRST_BIT
37         bool
38
39 config NO_GENERIC_PCI_IOPORT_MAP
40         bool
41
42 config GENERIC_PCI_IOMAP
43         bool
44
45 config GENERIC_IOMAP
46         bool
47         select GENERIC_PCI_IOMAP
48
49 config GENERIC_IO
50         bool
51         default n
52
53 config STMP_DEVICE
54         bool
55
56 config ARCH_USE_CMPXCHG_LOCKREF
57         bool
58
59 config ARCH_HAS_FAST_MULTIPLIER
60         bool
61
62 config CRC_CCITT
63         tristate "CRC-CCITT functions"
64         help
65           This option is provided for the case where no in-kernel-tree
66           modules require CRC-CCITT functions, but a module built outside
67           the kernel tree does. Such modules that use library CRC-CCITT
68           functions require M here.
69
70 config CRC16
71         tristate "CRC16 functions"
72         help
73           This option is provided for the case where no in-kernel-tree
74           modules require CRC16 functions, but a module built outside
75           the kernel tree does. Such modules that use library CRC16
76           functions require M here.
77
78 config CRC_T10DIF
79         tristate "CRC calculation for the T10 Data Integrity Field"
80         select CRYPTO
81         select CRYPTO_CRCT10DIF
82         help
83           This option is only needed if a module that's not in the
84           kernel tree needs to calculate CRC checks for use with the
85           SCSI data integrity subsystem.
86
87 config CRC_ITU_T
88         tristate "CRC ITU-T V.41 functions"
89         help
90           This option is provided for the case where no in-kernel-tree
91           modules require CRC ITU-T V.41 functions, but a module built outside
92           the kernel tree does. Such modules that use library CRC ITU-T V.41
93           functions require M here.
94
95 config CRC32
96         tristate "CRC32/CRC32c functions"
97         default y
98         select BITREVERSE
99         help
100           This option is provided for the case where no in-kernel-tree
101           modules require CRC32/CRC32c functions, but a module built outside
102           the kernel tree does. Such modules that use library CRC32/CRC32c
103           functions require M here.
104
105 config CRC32_SELFTEST
106         tristate "CRC32 perform self test on init"
107         depends on CRC32
108         help
109           This option enables the CRC32 library functions to perform a
110           self test on initialization. The self test computes crc32_le
111           and crc32_be over byte strings with random alignment and length
112           and computes the total elapsed time and number of bytes processed.
113
114 choice
115         prompt "CRC32 implementation"
116         depends on CRC32
117         default CRC32_SLICEBY8
118         help
119           This option allows a kernel builder to override the default choice
120           of CRC32 algorithm.  Choose the default ("slice by 8") unless you
121           know that you need one of the others.
122
123 config CRC32_SLICEBY8
124         bool "Slice by 8 bytes"
125         help
126           Calculate checksum 8 bytes at a time with a clever slicing algorithm.
127           This is the fastest algorithm, but comes with a 8KiB lookup table.
128           Most modern processors have enough cache to hold this table without
129           thrashing the cache.
130
131           This is the default implementation choice.  Choose this one unless
132           you have a good reason not to.
133
134 config CRC32_SLICEBY4
135         bool "Slice by 4 bytes"
136         help
137           Calculate checksum 4 bytes at a time with a clever slicing algorithm.
138           This is a bit slower than slice by 8, but has a smaller 4KiB lookup
139           table.
140
141           Only choose this option if you know what you are doing.
142
143 config CRC32_SARWATE
144         bool "Sarwate's Algorithm (one byte at a time)"
145         help
146           Calculate checksum a byte at a time using Sarwate's algorithm.  This
147           is not particularly fast, but has a small 256 byte lookup table.
148
149           Only choose this option if you know what you are doing.
150
151 config CRC32_BIT
152         bool "Classic Algorithm (one bit at a time)"
153         help
154           Calculate checksum one bit at a time.  This is VERY slow, but has
155           no lookup table.  This is provided as a debugging option.
156
157           Only choose this option if you are debugging crc32.
158
159 endchoice
160
161 config CRC4
162         tristate "CRC4 functions"
163         help
164           This option is provided for the case where no in-kernel-tree
165           modules require CRC4 functions, but a module built outside
166           the kernel tree does. Such modules that use library CRC4
167           functions require M here.
168
169 config CRC7
170         tristate "CRC7 functions"
171         help
172           This option is provided for the case where no in-kernel-tree
173           modules require CRC7 functions, but a module built outside
174           the kernel tree does. Such modules that use library CRC7
175           functions require M here.
176
177 config LIBCRC32C
178         tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
179         select CRYPTO
180         select CRYPTO_CRC32C
181         help
182           This option is provided for the case where no in-kernel-tree
183           modules require CRC32c functions, but a module built outside the
184           kernel tree does. Such modules that use library CRC32c functions
185           require M here.  See Castagnoli93.
186           Module will be libcrc32c.
187
188 config CRC8
189         tristate "CRC8 function"
190         help
191           This option provides CRC8 function. Drivers may select this
192           when they need to do cyclic redundancy check according CRC8
193           algorithm. Module will be called crc8.
194
195 config AUDIT_GENERIC
196         bool
197         depends on AUDIT && !AUDIT_ARCH
198         default y
199
200 config AUDIT_ARCH_COMPAT_GENERIC
201         bool
202         default n
203
204 config AUDIT_COMPAT_GENERIC
205         bool
206         depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
207         default y
208
209 config RANDOM32_SELFTEST
210         bool "PRNG perform self test on init"
211         default n
212         help
213           This option enables the 32 bit PRNG library functions to perform a
214           self test on initialization.
215
216 #
217 # compression support is select'ed if needed
218 #
219 config 842_COMPRESS
220         select CRC32
221         tristate
222
223 config 842_DECOMPRESS
224         select CRC32
225         tristate
226
227 config ZLIB_INFLATE
228         tristate
229
230 config ZLIB_DEFLATE
231         tristate
232         select BITREVERSE
233
234 config LZO_COMPRESS
235         tristate
236
237 config LZO_DECOMPRESS
238         tristate
239
240 config LZ4_COMPRESS
241         tristate
242
243 config LZ4HC_COMPRESS
244         tristate
245
246 config LZ4_DECOMPRESS
247         tristate
248
249 source "lib/xz/Kconfig"
250
251 #
252 # These all provide a common interface (hence the apparent duplication with
253 # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
254 #
255 config DECOMPRESS_GZIP
256         select ZLIB_INFLATE
257         tristate
258
259 config DECOMPRESS_BZIP2
260         tristate
261
262 config DECOMPRESS_LZMA
263         tristate
264
265 config DECOMPRESS_XZ
266         select XZ_DEC
267         tristate
268
269 config DECOMPRESS_LZO
270         select LZO_DECOMPRESS
271         tristate
272
273 config DECOMPRESS_LZ4
274         select LZ4_DECOMPRESS
275         tristate
276
277 #
278 # Generic allocator support is selected if needed
279 #
280 config GENERIC_ALLOCATOR
281         bool
282
283 #
284 # reed solomon support is select'ed if needed
285 #
286 config REED_SOLOMON
287         tristate
288         
289 config REED_SOLOMON_ENC8
290         bool
291
292 config REED_SOLOMON_DEC8
293         bool
294
295 config REED_SOLOMON_ENC16
296         bool
297
298 config REED_SOLOMON_DEC16
299         bool
300
301 #
302 # BCH support is selected if needed
303 #
304 config BCH
305         tristate
306
307 config BCH_CONST_PARAMS
308         bool
309         help
310           Drivers may select this option to force specific constant
311           values for parameters 'm' (Galois field order) and 't'
312           (error correction capability). Those specific values must
313           be set by declaring default values for symbols BCH_CONST_M
314           and BCH_CONST_T.
315           Doing so will enable extra compiler optimizations,
316           improving encoding and decoding performance up to 2x for
317           usual (m,t) values (typically such that m*t < 200).
318           When this option is selected, the BCH library supports
319           only a single (m,t) configuration. This is mainly useful
320           for NAND flash board drivers requiring known, fixed BCH
321           parameters.
322
323 config BCH_CONST_M
324         int
325         range 5 15
326         help
327           Constant value for Galois field order 'm'. If 'k' is the
328           number of data bits to protect, 'm' should be chosen such
329           that (k + m*t) <= 2**m - 1.
330           Drivers should declare a default value for this symbol if
331           they select option BCH_CONST_PARAMS.
332
333 config BCH_CONST_T
334         int
335         help
336           Constant value for error correction capability in bits 't'.
337           Drivers should declare a default value for this symbol if
338           they select option BCH_CONST_PARAMS.
339
340 #
341 # Textsearch support is select'ed if needed
342 #
343 config TEXTSEARCH
344         bool
345
346 config TEXTSEARCH_KMP
347         tristate
348
349 config TEXTSEARCH_BM
350         tristate
351
352 config TEXTSEARCH_FSM
353         tristate
354
355 config BTREE
356         bool
357
358 config INTERVAL_TREE
359         bool
360         help
361           Simple, embeddable, interval-tree. Can find the start of an
362           overlapping range in log(n) time and then iterate over all
363           overlapping nodes. The algorithm is implemented as an
364           augmented rbtree.
365
366           See:
367
368                 Documentation/rbtree.txt
369
370           for more information.
371
372 config RADIX_TREE_MULTIORDER
373         bool
374
375 config ASSOCIATIVE_ARRAY
376         bool
377         help
378           Generic associative array.  Can be searched and iterated over whilst
379           it is being modified.  It is also reasonably quick to search and
380           modify.  The algorithms are non-recursive, and the trees are highly
381           capacious.
382
383           See:
384
385                 Documentation/assoc_array.txt
386
387           for more information.
388
389 config HAS_IOMEM
390         bool
391         depends on !NO_IOMEM
392         select GENERIC_IO
393         default y
394
395 config HAS_IOPORT_MAP
396         bool
397         depends on HAS_IOMEM && !NO_IOPORT_MAP
398         default y
399
400 config HAS_DMA
401         bool
402         depends on !NO_DMA
403         default y
404
405 config DMA_NOOP_OPS
406         bool
407         depends on HAS_DMA && (!64BIT || ARCH_DMA_ADDR_T_64BIT)
408         default n
409
410 config DMA_VIRT_OPS
411         bool
412         depends on HAS_DMA && (!64BIT || ARCH_DMA_ADDR_T_64BIT)
413         default n
414
415 config CHECK_SIGNATURE
416         bool
417
418 config CPUMASK_OFFSTACK
419         bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
420         help
421           Use dynamic allocation for cpumask_var_t, instead of putting
422           them on the stack.  This is a bit more expensive, but avoids
423           stack overflow.
424
425 config CPU_RMAP
426         bool
427         depends on SMP
428
429 config DQL
430         bool
431
432 config GLOB
433         bool
434 #       This actually supports modular compilation, but the module overhead
435 #       is ridiculous for the amount of code involved.  Until an out-of-tree
436 #       driver asks for it, we'll just link it directly it into the kernel
437 #       when required.  Since we're ignoring out-of-tree users, there's also
438 #       no need bother prompting for a manual decision:
439 #       prompt "glob_match() function"
440         help
441           This option provides a glob_match function for performing
442           simple text pattern matching.  It originated in the ATA code
443           to blacklist particular drive models, but other device drivers
444           may need similar functionality.
445
446           All drivers in the Linux kernel tree that require this function
447           should automatically select this option.  Say N unless you
448           are compiling an out-of tree driver which tells you that it
449           depends on this.
450
451 config GLOB_SELFTEST
452         tristate "glob self-test on init"
453         depends on GLOB
454         help
455           This option enables a simple self-test of the glob_match
456           function on startup.  It is primarily useful for people
457           working on the code to ensure they haven't introduced any
458           regressions.
459
460           It only adds a little bit of code and slows kernel boot (or
461           module load) by a small amount, so you're welcome to play with
462           it, but you probably don't need it.
463
464 #
465 # Netlink attribute parsing support is select'ed if needed
466 #
467 config NLATTR
468         bool
469
470 #
471 # Generic 64-bit atomic support is selected if needed
472 #
473 config GENERIC_ATOMIC64
474        bool
475
476 config LRU_CACHE
477         tristate
478
479 config CLZ_TAB
480         bool
481
482 config CORDIC
483         tristate "CORDIC algorithm"
484         help
485           This option provides an implementation of the CORDIC algorithm;
486           calculations are in fixed point. Module will be called cordic.
487
488 config DDR
489         bool "JEDEC DDR data"
490         help
491           Data from JEDEC specs for DDR SDRAM memories,
492           particularly the AC timing parameters and addressing
493           information. This data is useful for drivers handling
494           DDR SDRAM controllers.
495
496 config IRQ_POLL
497         bool "IRQ polling library"
498         help
499           Helper library to poll interrupt mitigation using polling.
500
501 config MPILIB
502         tristate
503         select CLZ_TAB
504         help
505           Multiprecision maths library from GnuPG.
506           It is used to implement RSA digital signature verification,
507           which is used by IMA/EVM digital signature extension.
508
509 config SIGNATURE
510         tristate
511         depends on KEYS
512         select CRYPTO
513         select CRYPTO_SHA1
514         select MPILIB
515         help
516           Digital signature verification. Currently only RSA is supported.
517           Implementation is done using GnuPG MPI library
518
519 #
520 # libfdt files, only selected if needed.
521 #
522 config LIBFDT
523         bool
524
525 config OID_REGISTRY
526         tristate
527         help
528           Enable fast lookup object identifier registry.
529
530 config UCS2_STRING
531         tristate
532
533 source "lib/fonts/Kconfig"
534
535 config SG_SPLIT
536         def_bool n
537         help
538          Provides a helper to split scatterlists into chunks, each chunk being
539          a scatterlist. This should be selected by a driver or an API which
540          whishes to split a scatterlist amongst multiple DMA channels.
541
542 config SG_POOL
543         def_bool n
544         help
545          Provides a helper to allocate chained scatterlists. This should be
546          selected by a driver or an API which whishes to allocate chained
547          scatterlist.
548
549 #
550 # sg chaining option
551 #
552
553 config ARCH_HAS_SG_CHAIN
554         def_bool n
555
556 config ARCH_HAS_PMEM_API
557         bool
558
559 config ARCH_HAS_UACCESS_FLUSHCACHE
560         bool
561
562 config STACKDEPOT
563         bool
564         select STACKTRACE
565
566 config SBITMAP
567         bool
568
569 config PARMAN
570         tristate "parman" if COMPILE_TEST
571
572 config PRIME_NUMBERS
573         tristate
574
575 config STRING_SELFTEST
576         bool "Test string functions"
577
578 endmenu