#
# Bluetooth subsystem configuration
#

menuconfig BT
	tristate "Bluetooth subsystem support"
	depends on NET && !S390
	depends on RFKILL || !RFKILL
	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 <http://www.bluetooth.com/>.

	  Linux Bluetooth subsystem consist of several layers:
	     Bluetooth Core (HCI device and connection manager, scheduler)
	     HCI Device drivers (Interface to the hardware)
	     SCO Module (SCO audio links)
	     L2CAP Module (Logical Link Control and Adaptation Protocol)
	     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 hcid.  These utilities and updates to
	  Bluetooth kernel modules are provided in the BlueZ packages.
	  For more information, see <http://www.bluez.org/>.

config BT_L2CAP
	tristate "L2CAP protocol support"
	depends on BT
	select CRC16
	help
	  L2CAP (Logical Link Control and Adaptation Protocol) provides
	  connection oriented and connection-less data transport.  L2CAP
	  support is required for most Bluetooth applications.

	  Say Y here to compile L2CAP support into the kernel or say M to
	  compile it as module (l2cap).

config BT_SCO
	tristate "SCO links support"
	depends on BT
	help
	  SCO link provides voice transport over Bluetooth.  SCO support is
	  required for voice applications like Headset and Audio.

	  Say Y here to compile SCO support into the kernel or say M to
	  compile it as module (sco).

source "net/bluetooth/rfcomm/Kconfig"

source "net/bluetooth/bnep/Kconfig"

source "net/bluetooth/cmtp/Kconfig"

source "net/bluetooth/hidp/Kconfig"

source "drivers/bluetooth/Kconfig"

