]> git.ipfire.org Git - thirdparty/linux.git/blame - lib/Kconfig
hwmon: (pmbus) Add support for Infineon Digital Multi-phase xdp152 family controllers
[thirdparty/linux.git] / lib / Kconfig
CommitLineData
ec8f24b7 1# SPDX-License-Identifier: GPL-2.0-only
1da177e4
LT
2#
3# Library configuration
4#
5
4370aa4a
LJ
6config BINARY_PRINTF
7 def_bool n
8
1da177e4
LT
9menu "Library routines"
10
f5e70d0f
DW
11config RAID6_PQ
12 tristate
13
be85f93a
DV
14config RAID6_PQ_BENCHMARK
15 bool "Automatically choose fastest RAID6 PQ functions"
16 depends on RAID6_PQ
17 default y
18 help
19 Benchmark all available RAID6 PQ functions on init and choose the
20 fastest one.
21
d2218d4e
MV
22config LINEAR_RANGES
23 tristate
24
554aae35
VO
25config PACKING
26 bool "Generic bitfield packing and unpacking"
27 default n
28 help
29 This option provides the packing() helper function, which permits
30 converting bitfields between a CPU-usable representation and a
31 memory representation that can have any combination of these quirks:
32 - Is little endian (bytes are reversed within a 32-bit group)
33 - The least-significant 32-bit word comes first (within a 64-bit
34 group)
35 - The most significant bit of a byte is at its right (bit 0 of a
36 register description is numerically 2^7).
37 Drivers may use these helpers to match the bit indices as described
38 in the data sheets of the peripherals they are in control of.
39
40 When in doubt, say N.
41
a5cfc1ec
AM
42config BITREVERSE
43 tristate
44
556d2f05 45config HAVE_ARCH_BITREVERSE
841c0090 46 bool
556d2f05 47 default n
556d2f05 48 help
9e522c0d
AM
49 This option enables the use of hardware bit-reversal instructions on
50 architectures which support such operations.
556d2f05 51
e6226997 52config ARCH_HAS_STRNCPY_FROM_USER
2922585b
DM
53 bool
54
e6226997 55config ARCH_HAS_STRNLEN_USER
a08c5356
LT
56 bool
57
e6226997
AB
58config GENERIC_STRNCPY_FROM_USER
59 def_bool !ARCH_HAS_STRNCPY_FROM_USER
60
61config GENERIC_STRNLEN_USER
62 def_bool !ARCH_HAS_STRNLEN_USER
63
4cd5773a
AS
64config GENERIC_NET_UTILS
65 bool
66
2c64e9cb
AS
67source "lib/math/Kconfig"
68
b923650b
MT
69config NO_GENERIC_PCI_IOPORT_MAP
70 bool
71
66eab4df
MT
72config GENERIC_PCI_IOMAP
73 bool
74
4673ca8e
MT
75config GENERIC_IOMAP
76 bool
66eab4df 77 select GENERIC_PCI_IOMAP
4673ca8e 78
4ccf4bea
WS
79config STMP_DEVICE
80 bool
22b361d1 81
bc08b449
LT
82config ARCH_USE_CMPXCHG_LOCKREF
83 bool
84
72d93104
LT
85config ARCH_HAS_FAST_MULTIPLIER
86 bool
87
2ce0d7f9
MB
88config ARCH_USE_SYM_ANNOTATIONS
89 bool
90
031e3601
ZY
91config INDIRECT_PIO
92 bool "Access I/O in non-MMIO mode"
93 depends on ARM64
94 help
95 On some platforms where no separate I/O space exists, there are I/O
96 hosts which can not be accessed in MMIO mode. Using the logical PIO
97 mechanism, the host-local I/O resource can be mapped into system
98 logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the
99 system can access the I/O devices with the mapped-logic PIO through
100 I/O accessors.
101
102 This way has relatively little I/O performance cost. Please make
103 sure your devices really need this configure item enabled.
104
105 When in doubt, say N.
106
ca2e3342
JB
107config INDIRECT_IOMEM
108 bool
109 help
110 This is selected by other options/architectures to provide the
111 emulated iomem accessors.
112
113config INDIRECT_IOMEM_FALLBACK
114 bool
115 depends on INDIRECT_IOMEM
116 help
117 If INDIRECT_IOMEM is selected, this enables falling back to plain
118 mmio accesses when the IO memory address is not a registered
119 emulated region.
120
e56e1898
JF
121source "lib/crypto/Kconfig"
122
1da177e4
LT
123config CRC_CCITT
124 tristate "CRC-CCITT functions"
125 help
126 This option is provided for the case where no in-kernel-tree
127 modules require CRC-CCITT functions, but a module built outside
128 the kernel tree does. Such modules that use library CRC-CCITT
129 functions require M here.
130
7657ec1f
EP
131config CRC16
132 tristate "CRC16 functions"
133 help
134 This option is provided for the case where no in-kernel-tree
135 modules require CRC16 functions, but a module built outside
136 the kernel tree does. Such modules that use library CRC16
137 functions require M here.
138
f11f594e
MP
139config CRC_T10DIF
140 tristate "CRC calculation for the T10 Data Integrity Field"
68411521
HX
141 select CRYPTO
142 select CRYPTO_CRCT10DIF
f11f594e
MP
143 help
144 This option is only needed if a module that's not in the
145 kernel tree needs to calculate CRC checks for use with the
146 SCSI data integrity subsystem.
147
f3813f4b
KB
148config CRC64_ROCKSOFT
149 tristate "CRC calculation for the Rocksoft model CRC64"
150 select CRC64
151 select CRYPTO
152 select CRYPTO_CRC64_ROCKSOFT
153 help
154 This option provides a CRC64 API to a registered crypto driver.
155 This is used with the block layer's data integrity subsystem.
156
3e7cbae7
ID
157config CRC_ITU_T
158 tristate "CRC ITU-T V.41 functions"
159 help
160 This option is provided for the case where no in-kernel-tree
161 modules require CRC ITU-T V.41 functions, but a module built outside
162 the kernel tree does. Such modules that use library CRC ITU-T V.41
163 functions require M here.
164
1da177e4 165config CRC32
46c5801e 166 tristate "CRC32/CRC32c functions"
1da177e4 167 default y
906d66df 168 select BITREVERSE
1da177e4
LT
169 help
170 This option is provided for the case where no in-kernel-tree
46c5801e
DW
171 modules require CRC32/CRC32c functions, but a module built outside
172 the kernel tree does. Such modules that use library CRC32/CRC32c
173 functions require M here.
1da177e4 174
3863ef31 175config CRC32_SELFTEST
5fb7f874 176 tristate "CRC32 perform self test on init"
3863ef31
BP
177 depends on CRC32
178 help
179 This option enables the CRC32 library functions to perform a
180 self test on initialization. The self test computes crc32_le
181 and crc32_be over byte strings with random alignment and length
182 and computes the total elapsed time and number of bytes processed.
183
5cde7656
DW
184choice
185 prompt "CRC32 implementation"
186 depends on CRC32
187 default CRC32_SLICEBY8
82edb4ba
DW
188 help
189 This option allows a kernel builder to override the default choice
190 of CRC32 algorithm. Choose the default ("slice by 8") unless you
191 know that you need one of the others.
5cde7656
DW
192
193config CRC32_SLICEBY8
194 bool "Slice by 8 bytes"
195 help
196 Calculate checksum 8 bytes at a time with a clever slicing algorithm.
197 This is the fastest algorithm, but comes with a 8KiB lookup table.
198 Most modern processors have enough cache to hold this table without
199 thrashing the cache.
200
201 This is the default implementation choice. Choose this one unless
202 you have a good reason not to.
203
204config CRC32_SLICEBY4
205 bool "Slice by 4 bytes"
206 help
207 Calculate checksum 4 bytes at a time with a clever slicing algorithm.
208 This is a bit slower than slice by 8, but has a smaller 4KiB lookup
209 table.
210
211 Only choose this option if you know what you are doing.
212
213config CRC32_SARWATE
214 bool "Sarwate's Algorithm (one byte at a time)"
215 help
216 Calculate checksum a byte at a time using Sarwate's algorithm. This
217 is not particularly fast, but has a small 256 byte lookup table.
218
219 Only choose this option if you know what you are doing.
220
221config CRC32_BIT
222 bool "Classic Algorithm (one bit at a time)"
223 help
224 Calculate checksum one bit at a time. This is VERY slow, but has
225 no lookup table. This is provided as a debugging option.
226
227 Only choose this option if you are debugging crc32.
228
229endchoice
230
feba04fd
CL
231config CRC64
232 tristate "CRC64 functions"
233 help
234 This option is provided for the case where no in-kernel-tree
235 modules require CRC64 functions, but a module built outside
236 the kernel tree does. Such modules that use library CRC64
237 functions require M here.
238
0cbaa448
JK
239config CRC4
240 tristate "CRC4 functions"
241 help
242 This option is provided for the case where no in-kernel-tree
243 modules require CRC4 functions, but a module built outside
244 the kernel tree does. Such modules that use library CRC4
245 functions require M here.
246
ad241528
JN
247config CRC7
248 tristate "CRC7 functions"
249 help
250 This option is provided for the case where no in-kernel-tree
251 modules require CRC7 functions, but a module built outside
252 the kernel tree does. Such modules that use library CRC7
253 functions require M here.
254
1da177e4
LT
255config LIBCRC32C
256 tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
93027354 257 select CRYPTO
69c35efc 258 select CRYPTO_CRC32C
1da177e4
LT
259 help
260 This option is provided for the case where no in-kernel-tree
261 modules require CRC32c functions, but a module built outside the
262 kernel tree does. Such modules that use library CRC32c functions
263 require M here. See Castagnoli93.
264 Module will be libcrc32c.
265
7150962d
AS
266config CRC8
267 tristate "CRC8 function"
268 help
269 This option provides CRC8 function. Drivers may select this
270 when they need to do cyclic redundancy check according CRC8
271 algorithm. Module will be called crc8.
272
5d240522
NT
273config XXHASH
274 tristate
275
e65e1fc2
AV
276config AUDIT_GENERIC
277 bool
278 depends on AUDIT && !AUDIT_ARCH
279 default y
280
4b588411
AT
281config AUDIT_ARCH_COMPAT_GENERIC
282 bool
283 default n
284
285config AUDIT_COMPAT_GENERIC
286 bool
287 depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
288 default y
289
a6a9c0f1
DB
290config RANDOM32_SELFTEST
291 bool "PRNG perform self test on init"
a6a9c0f1
DB
292 help
293 This option enables the 32 bit PRNG library functions to perform a
294 self test on initialization.
295
1da177e4
LT
296#
297# compression support is select'ed if needed
298#
2da572c9 299config 842_COMPRESS
5b571677 300 select CRC32
2da572c9
DS
301 tristate
302
303config 842_DECOMPRESS
5b571677 304 select CRC32
2da572c9
DS
305 tristate
306
1da177e4
LT
307config ZLIB_INFLATE
308 tristate
309
310config ZLIB_DEFLATE
311 tristate
1fd4e5c3 312 select BITREVERSE
1da177e4 313
aa5b395b
MZ
314config ZLIB_DFLTCC
315 def_bool y
316 depends on S390
317 prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib"
318 help
319 Enable s390x hardware support for zlib in the kernel.
320
64c70b1c
RP
321config LZO_COMPRESS
322 tristate
323
324config LZO_DECOMPRESS
325 tristate
326
c72ac7a1
CM
327config LZ4_COMPRESS
328 tristate
329
330config LZ4HC_COMPRESS
331 tristate
332
e76e1fdf
KL
333config LZ4_DECOMPRESS
334 tristate
335
73f3d1b4
NT
336config ZSTD_COMPRESS
337 select XXHASH
338 tristate
339
340config ZSTD_DECOMPRESS
341 select XXHASH
342 tristate
343
24fa0402
LC
344source "lib/xz/Kconfig"
345
c8531ab3
PA
346#
347# These all provide a common interface (hence the apparent duplication with
348# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
349#
350config DECOMPRESS_GZIP
7856a16e 351 select ZLIB_INFLATE
c8531ab3
PA
352 tristate
353
354config DECOMPRESS_BZIP2
355 tristate
356
357config DECOMPRESS_LZMA
358 tristate
359
3ebe1243
LC
360config DECOMPRESS_XZ
361 select XZ_DEC
362 tristate
363
cacb246f
AT
364config DECOMPRESS_LZO
365 select LZO_DECOMPRESS
366 tristate
367
e76e1fdf
KL
368config DECOMPRESS_LZ4
369 select LZ4_DECOMPRESS
370 tristate
371
4963bb2b
NT
372config DECOMPRESS_ZSTD
373 select ZSTD_DECOMPRESS
374 tristate
375
f14f75b8
JS
376#
377# Generic allocator support is selected if needed
378#
379config GENERIC_ALLOCATOR
6341e62b 380 bool
f14f75b8 381
1da177e4
LT
382#
383# reed solomon support is select'ed if needed
384#
385config REED_SOLOMON
386 tristate
387
388config REED_SOLOMON_ENC8
6341e62b 389 bool
1da177e4
LT
390
391config REED_SOLOMON_DEC8
6341e62b 392 bool
1da177e4
LT
393
394config REED_SOLOMON_ENC16
6341e62b 395 bool
1da177e4
LT
396
397config REED_SOLOMON_DEC16
6341e62b 398 bool
1da177e4 399
437aa565
ID
400#
401# BCH support is selected if needed
402#
403config BCH
404 tristate
405
406config BCH_CONST_PARAMS
6341e62b 407 bool
437aa565
ID
408 help
409 Drivers may select this option to force specific constant
410 values for parameters 'm' (Galois field order) and 't'
411 (error correction capability). Those specific values must
412 be set by declaring default values for symbols BCH_CONST_M
413 and BCH_CONST_T.
414 Doing so will enable extra compiler optimizations,
415 improving encoding and decoding performance up to 2x for
416 usual (m,t) values (typically such that m*t < 200).
417 When this option is selected, the BCH library supports
418 only a single (m,t) configuration. This is mainly useful
419 for NAND flash board drivers requiring known, fixed BCH
420 parameters.
421
422config BCH_CONST_M
423 int
424 range 5 15
425 help
426 Constant value for Galois field order 'm'. If 'k' is the
427 number of data bits to protect, 'm' should be chosen such
428 that (k + m*t) <= 2**m - 1.
429 Drivers should declare a default value for this symbol if
430 they select option BCH_CONST_PARAMS.
431
432config BCH_CONST_T
433 int
434 help
435 Constant value for error correction capability in bits 't'.
436 Drivers should declare a default value for this symbol if
437 they select option BCH_CONST_PARAMS.
438
f7704347
DM
439#
440# Textsearch support is select'ed if needed
441#
2de4ff7b 442config TEXTSEARCH
6341e62b 443 bool
1da177e4 444
df3fb93a 445config TEXTSEARCH_KMP
f7704347 446 tristate
df3fb93a 447
8082e4ed 448config TEXTSEARCH_BM
29cb9f9c 449 tristate
8082e4ed 450
6408f79c 451config TEXTSEARCH_FSM
f7704347 452 tristate
6408f79c 453
5db53f3e 454config BTREE
6341e62b 455 bool
5db53f3e 456
a88cc108 457config INTERVAL_TREE
6341e62b 458 bool
a88cc108
CW
459 help
460 Simple, embeddable, interval-tree. Can find the start of an
461 overlapping range in log(n) time and then iterate over all
462 overlapping nodes. The algorithm is implemented as an
463 augmented rbtree.
464
465 See:
466
14bbe3e3 467 Documentation/core-api/rbtree.rst
a88cc108
CW
468
469 for more information.
470
02c02bf1 471config XARRAY_MULTI
57578c2e 472 bool
02c02bf1
MW
473 help
474 Support entries which occupy multiple consecutive indices in the
475 XArray.
57578c2e 476
3cb98950
DH
477config ASSOCIATIVE_ARRAY
478 bool
479 help
480 Generic associative array. Can be searched and iterated over whilst
481 it is being modified. It is also reasonably quick to search and
482 modify. The algorithms are non-recursive, and the trees are highly
483 capacious.
484
485 See:
486
5fb94e9c 487 Documentation/core-api/assoc_array.rst
3cb98950
DH
488
489 for more information.
490
5ea81769 491config HAS_IOMEM
6341e62b 492 bool
5ea81769
AV
493 depends on !NO_IOMEM
494 default y
495
ce816fa8 496config HAS_IOPORT_MAP
6341e62b 497 bool
ce816fa8 498 depends on HAS_IOMEM && !NO_IOPORT_MAP
ee36c2bf
AV
499 default y
500
cf65a0f6 501source "kernel/dma/Kconfig"
411f0f3e 502
e80a0af4
BVA
503config SGL_ALLOC
504 bool
505 default n
506
a4ce5a48
CH
507config IOMMU_HELPER
508 bool
509
928923c7
GU
510config CHECK_SIGNATURE
511 bool
512
aab46da0
RR
513config CPUMASK_OFFSTACK
514 bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
515 help
516 Use dynamic allocation for cpumask_var_t, instead of putting
517 them on the stack. This is a bit more expensive, but avoids
518 stack overflow.
519
c39649c3
BH
520config CPU_RMAP
521 bool
522 depends on SMP
523
75957ba3
TH
524config DQL
525 bool
526
b0125085
GS
527config GLOB
528 bool
529# This actually supports modular compilation, but the module overhead
530# is ridiculous for the amount of code involved. Until an out-of-tree
531# driver asks for it, we'll just link it directly it into the kernel
532# when required. Since we're ignoring out-of-tree users, there's also
533# no need bother prompting for a manual decision:
534# prompt "glob_match() function"
535 help
536 This option provides a glob_match function for performing
537 simple text pattern matching. It originated in the ATA code
538 to blacklist particular drive models, but other device drivers
539 may need similar functionality.
540
541 All drivers in the Linux kernel tree that require this function
542 should automatically select this option. Say N unless you
543 are compiling an out-of tree driver which tells you that it
544 depends on this.
545
5f9be824 546config GLOB_SELFTEST
ba95b045 547 tristate "glob self-test on init"
5f9be824
GS
548 depends on GLOB
549 help
550 This option enables a simple self-test of the glob_match
551 function on startup. It is primarily useful for people
552 working on the code to ensure they haven't introduced any
553 regressions.
554
555 It only adds a little bit of code and slows kernel boot (or
556 module load) by a small amount, so you're welcome to play with
557 it, but you probably don't need it.
558
e9cc8bdd
GU
559#
560# Netlink attribute parsing support is select'ed if needed
561#
562config NLATTR
563 bool
564
09d4e0ed
PM
565#
566# Generic 64-bit atomic support is selected if needed
567#
568config GENERIC_ATOMIC64
569 bool
570
b411b363
PR
571config LRU_CACHE
572 tristate
573
c6df4b17
DM
574config CLZ_TAB
575 bool
576
511cbce2
CH
577config IRQ_POLL
578 bool "IRQ polling library"
579 help
580 Helper library to poll interrupt mitigation using polling.
581
d9c46b18 582config MPILIB
2e5f094b 583 tristate
c6df4b17 584 select CLZ_TAB
d9c46b18
DK
585 help
586 Multiprecision maths library from GnuPG.
587 It is used to implement RSA digital signature verification,
588 which is used by IMA/EVM digital signature extension.
589
5e8898e9 590config SIGNATURE
2e5f094b 591 tristate
0d1f64f6
DK
592 depends on KEYS
593 select CRYPTO
be440ec7 594 select CRYPTO_SHA1
051dbb91
DK
595 select MPILIB
596 help
597 Digital signature verification. Currently only RSA is supported.
598 Implementation is done using GnuPG MPI library
599
4f75da36 600config DIMLIB
424adc32 601 bool
4f75da36
TG
602 help
603 Dynamic Interrupt Moderation library.
991ad2b2 604 Implements an algorithm for dynamically changing CQ moderation values
4f75da36
TG
605 according to run time performance.
606
ab253839
DD
607#
608# libfdt files, only selected if needed.
609#
610config LIBFDT
611 bool
612
a77ad6ea
DH
613config OID_REGISTRY
614 tristate
615 help
616 Enable fast lookup object identifier registry.
617
0635eb8a 618config UCS2_STRING
68d4b3df 619 tristate
0635eb8a 620
00b26474
VF
621#
622# generic vdso
623#
624source "lib/vdso/Kconfig"
625
ee89bd6b
GU
626source "lib/fonts/Kconfig"
627
f8bcbe62
RJ
628config SG_SPLIT
629 def_bool n
630 help
7f7e92f7
GU
631 Provides a helper to split scatterlists into chunks, each chunk being
632 a scatterlist. This should be selected by a driver or an API which
633 whishes to split a scatterlist amongst multiple DMA channels.
f8bcbe62 634
9b1d6c89
ML
635config SG_POOL
636 def_bool n
637 help
638 Provides a helper to allocate chained scatterlists. This should be
639 selected by a driver or an API which whishes to allocate chained
640 scatterlist.
641
308c09f1
LA
642#
643# sg chaining option
644#
645
7c703e54 646config ARCH_NO_SG_CHAIN
308c09f1
LA
647 def_bool n
648
61031952
RZ
649config ARCH_HAS_PMEM_API
650 bool
651
33dd7075
DW
652config MEMREGION
653 bool
654
9ffc1d19
DW
655config ARCH_HAS_MEMREMAP_COMPAT_ALIGN
656 bool
657
bd79f947
CH
658# use memcpy to implement user copies for nommu architectures
659config UACCESS_MEMCPY
660 bool
661
0aed55af
DW
662config ARCH_HAS_UACCESS_FLUSHCACHE
663 bool
664
ec6347bb
DW
665# arch has a concept of a recoverable synchronous exception due to a
666# memory-read error like x86 machine-check or ARM data-abort, and
667# implements copy_mc_to_{user,kernel} to abort and report
668# 'bytes-transferred' if that exception fires when accessing the source
669# buffer.
670config ARCH_HAS_COPY_MC
522239b4
DW
671 bool
672
214d8ca6
TG
673# Temporary. Goes away when all archs are cleaned up
674config ARCH_STACKWALK
675 bool
676
cd11016e
AP
677config STACKDEPOT
678 bool
679 select STACKTRACE
680
2dba5eb1
VB
681config STACKDEPOT_ALWAYS_INIT
682 bool
683 select STACKDEPOT
684
d2620936
YL
685config STACK_HASH_ORDER
686 int "stack depot hash size (12 => 4KB, 20 => 1024KB)"
687 range 12 20
688 default 20
689 depends on STACKDEPOT
690 help
691 Select the hash size as a power of 2 for the stackdepot hash table.
692 Choose a lower value to reduce the memory impact.
693
4e66934e
ED
694config REF_TRACKER
695 bool
696 depends on STACKTRACE_SUPPORT
697 select STACKDEPOT
698
88459642
OS
699config SBITMAP
700 bool
701
44091d29 702config PARMAN
9d25af69 703 tristate "parman" if COMPILE_TEST
44091d29 704
3dfdecc6
RD
705config OBJAGG
706 tristate "objagg" if COMPILE_TEST
707
2de4ff7b 708endmenu
b35cd988 709
80b0ca98
CH
710config GENERIC_IOREMAP
711 bool
712
e3d59805 713config GENERIC_LIB_ASHLDI3
b35cd988
PD
714 bool
715
e3d59805 716config GENERIC_LIB_ASHRDI3
b35cd988
PD
717 bool
718
e3d59805 719config GENERIC_LIB_LSHRDI3
b35cd988
PD
720 bool
721
e3d59805 722config GENERIC_LIB_MULDI3
b35cd988
PD
723 bool
724
e3d59805 725config GENERIC_LIB_CMPDI2
b35cd988
PD
726 bool
727
e3d59805 728config GENERIC_LIB_UCMPDI2
b35cd988 729 bool
b8265621 730
527701ed
PD
731config GENERIC_LIB_DEVMEM_IS_ALLOWED
732 bool
733
b8265621
JK
734config PLDMFW
735 bool
736 default n
b0706762
JB
737
738config ASN1_ENCODER
739 tristate