# SPDX-License-Identifier: GPL-2.0-only # Kconfig for the kernel's cyclic redundancy check (CRC) library code config CRC4 tristate help The CRC4 library functions. Select this if your module uses any of the functions from . config CRC7 tristate help The CRC7 library functions. Select this if your module uses any of the functions from . config CRC8 tristate help The CRC8 library functions. Select this if your module uses any of the functions from . config CRC16 tristate help The CRC16 library functions. Select this if your module uses any of the functions from . config CRC_CCITT tristate help The CRC-CCITT library functions. Select this if your module uses any of the functions from . config CRC_ITU_T tristate help The CRC-ITU-T library functions. Select this if your module uses any of the functions from . config CRC_T10DIF tristate help The CRC-T10DIF library functions. Select this if your module uses any of the functions from . config CRC_T10DIF_ARCH bool depends on CRC_T10DIF && CRC_OPTIMIZATIONS default y if ARM && KERNEL_MODE_NEON default y if ARM64 && KERNEL_MODE_NEON default y if PPC64 && ALTIVEC default y if RISCV && RISCV_ISA_ZBC default y if X86 config CRC32 tristate select BITREVERSE help The CRC32 library functions. Select this if your module uses any of the functions from or . config CRC32_ARCH bool depends on CRC32 && CRC_OPTIMIZATIONS default y if ARM && KERNEL_MODE_NEON default y if ARM64 default y if LOONGARCH default y if MIPS && CPU_MIPSR6 default y if PPC64 && ALTIVEC default y if RISCV && RISCV_ISA_ZBC default y if S390 default y if SPARC64 default y if X86 config CRC64 tristate help The CRC64 library functions. Select this if your module uses any of the functions from . config CRC64_ARCH bool depends on CRC64 && CRC_OPTIMIZATIONS default y if RISCV && RISCV_ISA_ZBC && 64BIT default y if X86_64 config CRC_OPTIMIZATIONS bool "Enable optimized CRC implementations" if EXPERT depends on !UML default y help Disabling this option reduces code size slightly by disabling the architecture-optimized implementations of any CRC variants that are enabled. CRC checksumming performance may get much slower. Keep this enabled unless you're really trying to minimize the size of the kernel. config CRC_KUNIT_TEST tristate "KUnit tests for CRC functions" if !KUNIT_ALL_TESTS depends on KUNIT default KUNIT_ALL_TESTS select CRC7 select CRC16 select CRC_T10DIF select CRC32 select CRC64 help Unit tests for the CRC library functions. This is intended to help people writing architecture-specific optimized versions. If unsure, say N. config CRC_BENCHMARK bool "Benchmark for the CRC functions" depends on CRC_KUNIT_TEST help Include benchmarks in the KUnit test suite for the CRC functions.