| # 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_HS | 
 | 	bool "Bluetooth High Speed (HS) features" | 
 | 	depends on BT_BREDR | 
 | 	help | 
 | 	  Bluetooth High Speed includes support for off-loading | 
 | 	  Bluetooth connections via 802.11 (wifi) physical layer | 
 | 	  available with Bluetooth version 3.0 or later. | 
 |  | 
 | 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_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" |