drm/connector: hdmi: Fix memory leak in drm_display_mode_from_cea_vic()
[drm/drm-misc.git] / lib / Kconfig
blobb38849af6f1302a0402d47051423603bc1ab46cb
1 # SPDX-License-Identifier: GPL-2.0-only
3 # Library configuration
6 config BINARY_PRINTF
7         def_bool n
9 menu "Library routines"
11 config RAID6_PQ
12         tristate
14 config 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.
22 config LINEAR_RANGES
23         tristate
25 config PACKING
26         bool "Generic bitfield packing and unpacking"
27         select BITREVERSE
28         default n
29         help
30           This option provides the packing() helper function, which permits
31           converting bitfields between a CPU-usable representation and a
32           memory representation that can have any combination of these quirks:
33             - Is little endian (bytes are reversed within a 32-bit group)
34             - The least-significant 32-bit word comes first (within a 64-bit
35               group)
36             - The most significant bit of a byte is at its right (bit 0 of a
37               register description is numerically 2^7).
38           Drivers may use these helpers to match the bit indices as described
39           in the data sheets of the peripherals they are in control of.
41           When in doubt, say N.
43 config BITREVERSE
44         tristate
46 config HAVE_ARCH_BITREVERSE
47         bool
48         default n
49         help
50           This option enables the use of hardware bit-reversal instructions on
51           architectures which support such operations.
53 config ARCH_HAS_STRNCPY_FROM_USER
54         bool
56 config ARCH_HAS_STRNLEN_USER
57         bool
59 config GENERIC_STRNCPY_FROM_USER
60         def_bool !ARCH_HAS_STRNCPY_FROM_USER
62 config GENERIC_STRNLEN_USER
63         def_bool !ARCH_HAS_STRNLEN_USER
65 config GENERIC_NET_UTILS
66         bool
68 source "lib/math/Kconfig"
70 config NO_GENERIC_PCI_IOPORT_MAP
71         bool
73 config GENERIC_IOMAP
74         bool
75         select GENERIC_PCI_IOMAP
77 config STMP_DEVICE
78         bool
80 config ARCH_USE_CMPXCHG_LOCKREF
81         bool
83 config ARCH_HAS_FAST_MULTIPLIER
84         bool
86 config ARCH_USE_SYM_ANNOTATIONS
87         bool
89 config INDIRECT_PIO
90         bool "Access I/O in non-MMIO mode"
91         depends on ARM64
92         depends on HAS_IOPORT
93         help
94           On some platforms where no separate I/O space exists, there are I/O
95           hosts which can not be accessed in MMIO mode. Using the logical PIO
96           mechanism, the host-local I/O resource can be mapped into system
97           logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the
98           system can access the I/O devices with the mapped-logic PIO through
99           I/O accessors.
101           This way has relatively little I/O performance cost. Please make
102           sure your devices really need this configure item enabled.
104           When in doubt, say N.
106 config INDIRECT_IOMEM
107         bool
108         help
109           This is selected by other options/architectures to provide the
110           emulated iomem accessors.
112 config INDIRECT_IOMEM_FALLBACK
113         bool
114         depends on INDIRECT_IOMEM
115         help
116           If INDIRECT_IOMEM is selected, this enables falling back to plain
117           mmio accesses when the IO memory address is not a registered
118           emulated region.
120 config TRACE_MMIO_ACCESS
121         bool "Register read/write tracing"
122         depends on TRACING && ARCH_HAVE_TRACE_MMIO_ACCESS
123         help
124           Create tracepoints for MMIO read/write operations. These trace events
125           can be used for logging all MMIO read/write operations.
127 source "lib/crypto/Kconfig"
129 config CRC_CCITT
130         tristate "CRC-CCITT functions"
131         help
132           This option is provided for the case where no in-kernel-tree
133           modules require CRC-CCITT functions, but a module built outside
134           the kernel tree does. Such modules that use library CRC-CCITT
135           functions require M here.
137 config CRC16
138         tristate "CRC16 functions"
139         help
140           This option is provided for the case where no in-kernel-tree
141           modules require CRC16 functions, but a module built outside
142           the kernel tree does. Such modules that use library CRC16
143           functions require M here.
145 config CRC_T10DIF
146         tristate "CRC calculation for the T10 Data Integrity Field"
147         select CRYPTO
148         select CRYPTO_CRCT10DIF
149         help
150           This option is only needed if a module that's not in the
151           kernel tree needs to calculate CRC checks for use with the
152           SCSI data integrity subsystem.
154 config CRC64_ROCKSOFT
155         tristate "CRC calculation for the Rocksoft model CRC64"
156         select CRC64
157         select CRYPTO
158         select CRYPTO_CRC64_ROCKSOFT
159         help
160           This option provides a CRC64 API to a registered crypto driver.
161           This is used with the block layer's data integrity subsystem.
163 config CRC_ITU_T
164         tristate "CRC ITU-T V.41 functions"
165         help
166           This option is provided for the case where no in-kernel-tree
167           modules require CRC ITU-T V.41 functions, but a module built outside
168           the kernel tree does. Such modules that use library CRC ITU-T V.41
169           functions require M here.
171 config CRC32
172         tristate "CRC32/CRC32c functions"
173         default y
174         select BITREVERSE
175         help
176           This option is provided for the case where no in-kernel-tree
177           modules require CRC32/CRC32c functions, but a module built outside
178           the kernel tree does. Such modules that use library CRC32/CRC32c
179           functions require M here.
181 config CRC32_SELFTEST
182         tristate "CRC32 perform self test on init"
183         depends on CRC32
184         help
185           This option enables the CRC32 library functions to perform a
186           self test on initialization. The self test computes crc32_le
187           and crc32_be over byte strings with random alignment and length
188           and computes the total elapsed time and number of bytes processed.
190 choice
191         prompt "CRC32 implementation"
192         depends on CRC32
193         default CRC32_SLICEBY8
194         help
195           This option allows a kernel builder to override the default choice
196           of CRC32 algorithm.  Choose the default ("slice by 8") unless you
197           know that you need one of the others.
199 config CRC32_SLICEBY8
200         bool "Slice by 8 bytes"
201         help
202           Calculate checksum 8 bytes at a time with a clever slicing algorithm.
203           This is the fastest algorithm, but comes with a 8KiB lookup table.
204           Most modern processors have enough cache to hold this table without
205           thrashing the cache.
207           This is the default implementation choice.  Choose this one unless
208           you have a good reason not to.
210 config CRC32_SLICEBY4
211         bool "Slice by 4 bytes"
212         help
213           Calculate checksum 4 bytes at a time with a clever slicing algorithm.
214           This is a bit slower than slice by 8, but has a smaller 4KiB lookup
215           table.
217           Only choose this option if you know what you are doing.
219 config CRC32_SARWATE
220         bool "Sarwate's Algorithm (one byte at a time)"
221         help
222           Calculate checksum a byte at a time using Sarwate's algorithm.  This
223           is not particularly fast, but has a small 256 byte lookup table.
225           Only choose this option if you know what you are doing.
227 config CRC32_BIT
228         bool "Classic Algorithm (one bit at a time)"
229         help
230           Calculate checksum one bit at a time.  This is VERY slow, but has
231           no lookup table.  This is provided as a debugging option.
233           Only choose this option if you are debugging crc32.
235 endchoice
237 config CRC64
238         tristate "CRC64 functions"
239         help
240           This option is provided for the case where no in-kernel-tree
241           modules require CRC64 functions, but a module built outside
242           the kernel tree does. Such modules that use library CRC64
243           functions require M here.
245 config CRC4
246         tristate "CRC4 functions"
247         help
248           This option is provided for the case where no in-kernel-tree
249           modules require CRC4 functions, but a module built outside
250           the kernel tree does. Such modules that use library CRC4
251           functions require M here.
253 config CRC7
254         tristate "CRC7 functions"
255         help
256           This option is provided for the case where no in-kernel-tree
257           modules require CRC7 functions, but a module built outside
258           the kernel tree does. Such modules that use library CRC7
259           functions require M here.
261 config LIBCRC32C
262         tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
263         select CRYPTO
264         select CRYPTO_CRC32C
265         help
266           This option is provided for the case where no in-kernel-tree
267           modules require CRC32c functions, but a module built outside the
268           kernel tree does. Such modules that use library CRC32c functions
269           require M here.  See Castagnoli93.
270           Module will be libcrc32c.
272 config CRC8
273         tristate "CRC8 function"
274         help
275           This option provides CRC8 function. Drivers may select this
276           when they need to do cyclic redundancy check according CRC8
277           algorithm. Module will be called crc8.
279 config XXHASH
280         tristate
282 config AUDIT_GENERIC
283         bool
284         depends on AUDIT && !AUDIT_ARCH
285         default y
287 config AUDIT_ARCH_COMPAT_GENERIC
288         bool
289         default n
291 config AUDIT_COMPAT_GENERIC
292         bool
293         depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
294         default y
296 config RANDOM32_SELFTEST
297         bool "PRNG perform self test on init"
298         help
299           This option enables the 32 bit PRNG library functions to perform a
300           self test on initialization.
303 # compression support is select'ed if needed
305 config 842_COMPRESS
306         select CRC32
307         tristate
309 config 842_DECOMPRESS
310         select CRC32
311         tristate
313 config ZLIB_INFLATE
314         tristate
316 config ZLIB_DEFLATE
317         tristate
318         select BITREVERSE
320 config ZLIB_DFLTCC
321         def_bool y
322         depends on S390
323         prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib"
324         help
325          Enable s390x hardware support for zlib in the kernel.
327 config LZO_COMPRESS
328         tristate
330 config LZO_DECOMPRESS
331         tristate
333 config LZ4_COMPRESS
334         tristate
336 config LZ4HC_COMPRESS
337         tristate
339 config LZ4_DECOMPRESS
340         tristate
342 config ZSTD_COMMON
343         select XXHASH
344         tristate
346 config ZSTD_COMPRESS
347         select ZSTD_COMMON
348         tristate
350 config ZSTD_DECOMPRESS
351         select ZSTD_COMMON
352         tristate
354 source "lib/xz/Kconfig"
357 # These all provide a common interface (hence the apparent duplication with
358 # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
360 config DECOMPRESS_GZIP
361         select ZLIB_INFLATE
362         tristate
364 config DECOMPRESS_BZIP2
365         tristate
367 config DECOMPRESS_LZMA
368         tristate
370 config DECOMPRESS_XZ
371         select XZ_DEC
372         tristate
374 config DECOMPRESS_LZO
375         select LZO_DECOMPRESS
376         tristate
378 config DECOMPRESS_LZ4
379         select LZ4_DECOMPRESS
380         tristate
382 config DECOMPRESS_ZSTD
383         select ZSTD_DECOMPRESS
384         tristate
387 # Generic allocator support is selected if needed
389 config GENERIC_ALLOCATOR
390         bool
393 # reed solomon support is select'ed if needed
395 config REED_SOLOMON
396         tristate
397         
398 config REED_SOLOMON_ENC8
399         bool
401 config REED_SOLOMON_DEC8
402         bool
404 config REED_SOLOMON_ENC16
405         bool
407 config REED_SOLOMON_DEC16
408         bool
411 # BCH support is selected if needed
413 config BCH
414         tristate
415         select BITREVERSE
417 config BCH_CONST_PARAMS
418         bool
419         help
420           Drivers may select this option to force specific constant
421           values for parameters 'm' (Galois field order) and 't'
422           (error correction capability). Those specific values must
423           be set by declaring default values for symbols BCH_CONST_M
424           and BCH_CONST_T.
425           Doing so will enable extra compiler optimizations,
426           improving encoding and decoding performance up to 2x for
427           usual (m,t) values (typically such that m*t < 200).
428           When this option is selected, the BCH library supports
429           only a single (m,t) configuration. This is mainly useful
430           for NAND flash board drivers requiring known, fixed BCH
431           parameters.
433 config BCH_CONST_M
434         int
435         range 5 15
436         help
437           Constant value for Galois field order 'm'. If 'k' is the
438           number of data bits to protect, 'm' should be chosen such
439           that (k + m*t) <= 2**m - 1.
440           Drivers should declare a default value for this symbol if
441           they select option BCH_CONST_PARAMS.
443 config BCH_CONST_T
444         int
445         help
446           Constant value for error correction capability in bits 't'.
447           Drivers should declare a default value for this symbol if
448           they select option BCH_CONST_PARAMS.
451 # Textsearch support is select'ed if needed
453 config TEXTSEARCH
454         bool
456 config TEXTSEARCH_KMP
457         tristate
459 config TEXTSEARCH_BM
460         tristate
462 config TEXTSEARCH_FSM
463         tristate
465 config BTREE
466         bool
468 config INTERVAL_TREE
469         bool
470         help
471           Simple, embeddable, interval-tree. Can find the start of an
472           overlapping range in log(n) time and then iterate over all
473           overlapping nodes. The algorithm is implemented as an
474           augmented rbtree.
476           See:
478                 Documentation/core-api/rbtree.rst
480           for more information.
482 config INTERVAL_TREE_SPAN_ITER
483         bool
484         depends on INTERVAL_TREE
486 config XARRAY_MULTI
487         bool
488         help
489           Support entries which occupy multiple consecutive indices in the
490           XArray.
492 config ASSOCIATIVE_ARRAY
493         bool
494         help
495           Generic associative array.  Can be searched and iterated over whilst
496           it is being modified.  It is also reasonably quick to search and
497           modify.  The algorithms are non-recursive, and the trees are highly
498           capacious.
500           See:
502                 Documentation/core-api/assoc_array.rst
504           for more information.
506 config CLOSURES
507         bool
509 config HAS_IOMEM
510         bool
511         depends on !NO_IOMEM
512         default y
514 config HAS_IOPORT
515         bool
517 config HAS_IOPORT_MAP
518         bool
519         depends on HAS_IOMEM && !NO_IOPORT_MAP
520         default y
522 source "kernel/dma/Kconfig"
524 config SGL_ALLOC
525         bool
526         default n
528 config IOMMU_HELPER
529         bool
531 config CHECK_SIGNATURE
532         bool
534 config CPUMASK_OFFSTACK
535         bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
536         help
537           Use dynamic allocation for cpumask_var_t, instead of putting
538           them on the stack.  This is a bit more expensive, but avoids
539           stack overflow.
541 config FORCE_NR_CPUS
542         def_bool !SMP
544 config CPU_RMAP
545         bool
546         depends on SMP
548 config DQL
549         bool
551 config GLOB
552         bool
553 #       This actually supports modular compilation, but the module overhead
554 #       is ridiculous for the amount of code involved.  Until an out-of-tree
555 #       driver asks for it, we'll just link it directly it into the kernel
556 #       when required.  Since we're ignoring out-of-tree users, there's also
557 #       no need bother prompting for a manual decision:
558 #       prompt "glob_match() function"
559         help
560           This option provides a glob_match function for performing
561           simple text pattern matching.  It originated in the ATA code
562           to blacklist particular drive models, but other device drivers
563           may need similar functionality.
565           All drivers in the Linux kernel tree that require this function
566           should automatically select this option.  Say N unless you
567           are compiling an out-of tree driver which tells you that it
568           depends on this.
570 config GLOB_SELFTEST
571         tristate "glob self-test on init"
572         depends on GLOB
573         help
574           This option enables a simple self-test of the glob_match
575           function on startup.  It is primarily useful for people
576           working on the code to ensure they haven't introduced any
577           regressions.
579           It only adds a little bit of code and slows kernel boot (or
580           module load) by a small amount, so you're welcome to play with
581           it, but you probably don't need it.
584 # Netlink attribute parsing support is select'ed if needed
586 config NLATTR
587         bool
590 # Generic 64-bit atomic support is selected if needed
592 config GENERIC_ATOMIC64
593        bool
595 config LRU_CACHE
596         tristate
598 config CLZ_TAB
599         bool
601 config IRQ_POLL
602         bool "IRQ polling library"
603         help
604           Helper library to poll interrupt mitigation using polling.
606 config MPILIB
607         tristate
608         select CLZ_TAB
609         help
610           Multiprecision maths library from GnuPG.
611           It is used to implement RSA digital signature verification,
612           which is used by IMA/EVM digital signature extension.
614 config SIGNATURE
615         tristate
616         depends on KEYS
617         select CRYPTO
618         select CRYPTO_SHA1
619         select MPILIB
620         help
621           Digital signature verification. Currently only RSA is supported.
622           Implementation is done using GnuPG MPI library
624 config DIMLIB
625         tristate
626         depends on NET
627         help
628           Dynamic Interrupt Moderation library.
629           Implements an algorithm for dynamically changing CQ moderation values
630           according to run time performance.
633 # libfdt files, only selected if needed.
635 config LIBFDT
636         bool
638 config OID_REGISTRY
639         tristate
640         help
641           Enable fast lookup object identifier registry.
643 config UCS2_STRING
644         tristate
647 # generic vdso
649 source "lib/vdso/Kconfig"
651 source "lib/fonts/Kconfig"
653 config SG_SPLIT
654         def_bool n
655         help
656          Provides a helper to split scatterlists into chunks, each chunk being
657          a scatterlist. This should be selected by a driver or an API which
658          whishes to split a scatterlist amongst multiple DMA channels.
660 config SG_POOL
661         def_bool n
662         help
663          Provides a helper to allocate chained scatterlists. This should be
664          selected by a driver or an API which whishes to allocate chained
665          scatterlist.
668 # sg chaining option
671 config ARCH_NO_SG_CHAIN
672         def_bool n
674 config ARCH_HAS_PMEM_API
675         bool
677 config MEMREGION
678         bool
680 config ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION
681         bool
683 config ARCH_HAS_MEMREMAP_COMPAT_ALIGN
684         bool
686 # use memcpy to implement user copies for nommu architectures
687 config UACCESS_MEMCPY
688         bool
690 config ARCH_HAS_UACCESS_FLUSHCACHE
691         bool
693 # arch has a concept of a recoverable synchronous exception due to a
694 # memory-read error like x86 machine-check or ARM data-abort, and
695 # implements copy_mc_to_{user,kernel} to abort and report
696 # 'bytes-transferred' if that exception fires when accessing the source
697 # buffer.
698 config ARCH_HAS_COPY_MC
699         bool
701 # Temporary. Goes away when all archs are cleaned up
702 config ARCH_STACKWALK
703        bool
705 config STACKDEPOT
706         bool
707         select STACKTRACE
708         help
709           Stack depot: stack trace storage that avoids duplication
711 config STACKDEPOT_ALWAYS_INIT
712         bool
713         select STACKDEPOT
714         help
715           Always initialize stack depot during early boot
717 config STACKDEPOT_MAX_FRAMES
718         int "Maximum number of frames in trace saved in stack depot"
719         range 1 256
720         default 64
721         depends on STACKDEPOT
723 config REF_TRACKER
724         bool
725         depends on STACKTRACE_SUPPORT
726         select STACKDEPOT
728 config SBITMAP
729         bool
731 config PARMAN
732         tristate "parman" if COMPILE_TEST
734 config OBJAGG
735         tristate "objagg" if COMPILE_TEST
737 config LWQ_TEST
738         bool "Boot-time test for lwq queuing"
739         help
740           Run boot-time test of light-weight queuing.
742 endmenu
744 config GENERIC_IOREMAP
745         bool
747 config GENERIC_LIB_ASHLDI3
748         bool
750 config GENERIC_LIB_ASHRDI3
751         bool
753 config GENERIC_LIB_LSHRDI3
754         bool
756 config GENERIC_LIB_MULDI3
757         bool
759 config GENERIC_LIB_CMPDI2
760         bool
762 config GENERIC_LIB_UCMPDI2
763         bool
765 config GENERIC_LIB_DEVMEM_IS_ALLOWED
766         bool
768 config PLDMFW
769         bool
770         default n
772 config ASN1_ENCODER
773        tristate
775 config POLYNOMIAL
776        tristate
778 config FIRMWARE_TABLE
779         bool