1# SPDX-License-Identifier: GPL-2.0-only 2 3# Kconfig for the kernel's cyclic redundancy check (CRC) library code 4 5config CRC4 6 tristate 7 help 8 The CRC4 library functions. Select this if your module uses any of 9 the functions from <linux/crc4.h>. 10 11config CRC7 12 tristate 13 help 14 The CRC7 library functions. Select this if your module uses any of 15 the functions from <linux/crc7.h>. 16 17config CRC8 18 tristate 19 help 20 The CRC8 library functions. Select this if your module uses any of 21 the functions from <linux/crc8.h>. 22 23config CRC16 24 tristate 25 help 26 The CRC16 library functions. Select this if your module uses any of 27 the functions from <linux/crc16.h>. 28 29config CRC_CCITT 30 tristate 31 help 32 The CRC-CCITT library functions. Select this if your module uses any 33 of the functions from <linux/crc-ccitt.h>. 34 35config CRC_ITU_T 36 tristate 37 help 38 The CRC-ITU-T library functions. Select this if your module uses 39 any of the functions from <linux/crc-itu-t.h>. 40 41config CRC_T10DIF 42 tristate 43 help 44 The CRC-T10DIF library functions. Select this if your module uses 45 any of the functions from <linux/crc-t10dif.h>. 46 47config ARCH_HAS_CRC_T10DIF 48 bool 49 50config CRC_T10DIF_ARCH 51 bool 52 depends on CRC_T10DIF && CRC_OPTIMIZATIONS 53 default y if ARM && KERNEL_MODE_NEON 54 default y if ARM64 && KERNEL_MODE_NEON 55 56config CRC32 57 tristate 58 select BITREVERSE 59 help 60 The CRC32 library functions. Select this if your module uses any of 61 the functions from <linux/crc32.h> or <linux/crc32c.h>. 62 63config ARCH_HAS_CRC32 64 bool 65 66config CRC32_ARCH 67 bool 68 depends on CRC32 && CRC_OPTIMIZATIONS 69 default y if ARM && KERNEL_MODE_NEON 70 default y if ARM64 71 default y if LOONGARCH 72 73config CRC64 74 tristate 75 help 76 The CRC64 library functions. Select this if your module uses any of 77 the functions from <linux/crc64.h>. 78 79config ARCH_HAS_CRC64 80 bool 81 82config CRC64_ARCH 83 bool 84 depends on CRC64 && CRC_OPTIMIZATIONS 85 86config CRC_OPTIMIZATIONS 87 bool "Enable optimized CRC implementations" if EXPERT 88 depends on !UML 89 default y 90 help 91 Disabling this option reduces code size slightly by disabling the 92 architecture-optimized implementations of any CRC variants that are 93 enabled. CRC checksumming performance may get much slower. 94 95 Keep this enabled unless you're really trying to minimize the size of 96 the kernel. 97 98config CRC_KUNIT_TEST 99 tristate "KUnit tests for CRC functions" if !KUNIT_ALL_TESTS 100 depends on KUNIT 101 default KUNIT_ALL_TESTS 102 select CRC7 103 select CRC16 104 select CRC_T10DIF 105 select CRC32 106 select CRC64 107 help 108 Unit tests for the CRC library functions. 109 110 This is intended to help people writing architecture-specific 111 optimized versions. If unsure, say N. 112 113config CRC_BENCHMARK 114 bool "Benchmark for the CRC functions" 115 depends on CRC_KUNIT_TEST 116 help 117 Include benchmarks in the KUnit test suite for the CRC functions. 118