|  | # SPDX-License-Identifier: GPL-2.0-only | 
|  | # | 
|  | # Bluetooth subsystem configuration | 
|  | # | 
|  |  | 
|  | menuconfig BT | 
|  | tristate "Bluetooth subsystem support" | 
|  | depends on !S390 | 
|  | depends on RFKILL || !RFKILL | 
|  | select CRC16 | 
|  | select CRYPTO | 
|  | select CRYPTO_SKCIPHER | 
|  | select CRYPTO_LIB_AES | 
|  | imply CRYPTO_AES | 
|  | select CRYPTO_CMAC | 
|  | select CRYPTO_ECB | 
|  | select CRYPTO_SHA256 | 
|  | select CRYPTO_ECDH | 
|  | help | 
|  | Bluetooth is low-cost, low-power, short-range wireless technology. | 
|  | It was designed as a replacement for cables and other short-range | 
|  | technologies like IrDA.  Bluetooth operates in personal area range | 
|  | that typically extends up to 10 meters.  More information about | 
|  | Bluetooth can be found at <https://www.bluetooth.com/>. | 
|  |  | 
|  | Linux Bluetooth subsystem consist of several layers: | 
|  | Bluetooth Core | 
|  | HCI device and connection manager, scheduler | 
|  | SCO audio links | 
|  | L2CAP (Logical Link Control and Adaptation Protocol) | 
|  | SMP (Security Manager Protocol) on LE (Low Energy) links | 
|  | ISO isochronous links | 
|  | HCI Device drivers (Interface to the hardware) | 
|  | RFCOMM Module (RFCOMM Protocol) | 
|  | BNEP Module (Bluetooth Network Encapsulation Protocol) | 
|  | CMTP Module (CAPI Message Transport Protocol) | 
|  | HIDP Module (Human Interface Device Protocol) | 
|  |  | 
|  | Say Y here to compile Bluetooth support into the kernel or say M to | 
|  | compile it as module (bluetooth). | 
|  |  | 
|  | To use Linux Bluetooth subsystem, you will need several user-space | 
|  | utilities like hciconfig and bluetoothd.  These utilities and updates | 
|  | to Bluetooth kernel modules are provided in the BlueZ packages.  For | 
|  | more information, see <http://www.bluez.org/>. | 
|  |  | 
|  | config BT_BREDR | 
|  | bool "Bluetooth Classic (BR/EDR) features" | 
|  | depends on BT | 
|  | default y | 
|  | help | 
|  | Bluetooth Classic includes support for Basic Rate (BR) | 
|  | available with Bluetooth version 1.0b or later and support | 
|  | for Enhanced Data Rate (EDR) available with Bluetooth | 
|  | version 2.0 or later. | 
|  |  | 
|  | source "net/bluetooth/rfcomm/Kconfig" | 
|  |  | 
|  | source "net/bluetooth/bnep/Kconfig" | 
|  |  | 
|  | source "net/bluetooth/cmtp/Kconfig" | 
|  |  | 
|  | source "net/bluetooth/hidp/Kconfig" | 
|  |  | 
|  | config BT_LE | 
|  | bool "Bluetooth Low Energy (LE) features" | 
|  | depends on BT | 
|  | default y | 
|  | help | 
|  | Bluetooth Low Energy includes support low-energy physical | 
|  | layer available with Bluetooth version 4.0 or later. | 
|  |  | 
|  | config BT_LE_L2CAP_ECRED | 
|  | bool "Bluetooth L2CAP Enhanced Credit Flow Control" | 
|  | depends on BT_LE | 
|  | default y | 
|  | help | 
|  | Bluetooth Low Energy L2CAP Enhanced Credit Flow Control available with | 
|  | Bluetooth version 5.2 or later. | 
|  |  | 
|  | This can be overridden by passing bluetooth.enable_ecred=[1|0] | 
|  | on the kernel commandline. | 
|  |  | 
|  | config BT_6LOWPAN | 
|  | tristate "Bluetooth 6LoWPAN support" | 
|  | depends on BT_LE && 6LOWPAN | 
|  | help | 
|  | IPv6 compression over Bluetooth Low Energy. | 
|  |  | 
|  | config BT_LEDS | 
|  | bool "Enable LED triggers" | 
|  | depends on BT | 
|  | depends on LEDS_CLASS | 
|  | select LEDS_TRIGGERS | 
|  | help | 
|  | This option selects a few LED triggers for different | 
|  | Bluetooth events. | 
|  |  | 
|  | config BT_MSFTEXT | 
|  | bool "Enable Microsoft extensions" | 
|  | depends on BT | 
|  | help | 
|  | This options enables support for the Microsoft defined HCI | 
|  | vendor extensions. | 
|  |  | 
|  | config BT_AOSPEXT | 
|  | bool "Enable Android Open Source Project extensions" | 
|  | depends on BT | 
|  | help | 
|  | This options enables support for the Android Open Source | 
|  | Project defined HCI vendor extensions. | 
|  |  | 
|  | config BT_DEBUGFS | 
|  | bool "Export Bluetooth internals in debugfs" | 
|  | depends on BT && DEBUG_FS | 
|  | default y | 
|  | help | 
|  | Provide extensive information about internal Bluetooth states | 
|  | in debugfs. | 
|  |  | 
|  | config BT_SELFTEST | 
|  | bool "Bluetooth self testing support" | 
|  | depends on BT && DEBUG_KERNEL | 
|  | help | 
|  | Run self tests when initializing the Bluetooth subsystem.  This | 
|  | is a developer option and can cause significant delay when booting | 
|  | the system. | 
|  |  | 
|  | When the Bluetooth subsystem is built as module, then the test | 
|  | cases are run first thing at module load time.  When the Bluetooth | 
|  | subsystem is compiled into the kernel image, then the test cases | 
|  | are run late in the initcall hierarchy. | 
|  |  | 
|  | config BT_SELFTEST_ECDH | 
|  | bool "ECDH test cases" | 
|  | depends on BT_LE && BT_SELFTEST | 
|  | help | 
|  | Run test cases for ECDH cryptographic functionality used by the | 
|  | Bluetooth Low Energy Secure Connections feature. | 
|  |  | 
|  | config BT_SELFTEST_SMP | 
|  | bool "SMP test cases" | 
|  | depends on BT_LE && BT_SELFTEST | 
|  | help | 
|  | Run test cases for SMP cryptographic functionality, including both | 
|  | legacy SMP as well as the Secure Connections features. | 
|  |  | 
|  | config BT_FEATURE_DEBUG | 
|  | bool "Enable runtime option for debugging statements" | 
|  | depends on BT && !DYNAMIC_DEBUG | 
|  | help | 
|  | This provides an option to enable/disable debugging statements | 
|  | at runtime via the experimental features interface. | 
|  |  | 
|  | source "drivers/bluetooth/Kconfig" |