Bluetooth: Always compile SCO and L2CAP in Bluetooth Core
Ulisses Furquim [Wed, 21 Dec 2011 03:32:09 +0000 (01:32 -0200)]
The handling of SCO audio links and the L2CAP protocol are essential to
any system with Bluetooth thus are always compiled in from now on.

Signed-off-by: Ulisses Furquim <ulisses@profusion.mobi>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>

include/net/bluetooth/bluetooth.h
net/bluetooth/Kconfig
net/bluetooth/Makefile
net/bluetooth/bnep/Kconfig
net/bluetooth/cmtp/Kconfig
net/bluetooth/hidp/Kconfig
net/bluetooth/rfcomm/Kconfig

index 980e59f..abaad6e 100644 (file)
@@ -250,32 +250,10 @@ extern void bt_sysfs_cleanup(void);
 
 extern struct dentry *bt_debugfs;
 
-#ifdef CONFIG_BT_L2CAP
 int l2cap_init(void);
 void l2cap_exit(void);
-#else
-static inline int l2cap_init(void)
-{
-       return 0;
-}
-
-static inline void l2cap_exit(void)
-{
-}
-#endif
 
-#ifdef CONFIG_BT_SCO
 int sco_init(void);
 void sco_exit(void);
-#else
-static inline int sco_init(void)
-{
-       return 0;
-}
-
-static inline void sco_exit(void)
-{
-}
-#endif
 
 #endif /* __BLUETOOTH_H */
index bfb3dc0..9ec85eb 100644 (file)
@@ -6,7 +6,11 @@ menuconfig BT
        tristate "Bluetooth subsystem support"
        depends on NET && !S390
        depends on RFKILL || !RFKILL
+       select CRC16
        select CRYPTO
+       select CRYPTO_BLKCIPHER
+       select CRYPTO_AES
+       select CRYPTO_ECB
        help
          Bluetooth is low-cost, low-power, short-range wireless technology.
          It was designed as a replacement for cables and other short-range
@@ -15,10 +19,12 @@ menuconfig BT
          Bluetooth can be found at <http://www.bluetooth.com/>.
 
          Linux Bluetooth subsystem consist of several layers:
-            Bluetooth Core (HCI device and connection manager, scheduler)
+            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
             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)
@@ -33,31 +39,6 @@ menuconfig BT
          to Bluetooth kernel modules are provided in the BlueZ packages.  For
          more information, see <http://www.bluez.org/>.
 
-if BT != n
-
-config BT_L2CAP
-       bool "L2CAP protocol support"
-       select CRC16
-       select CRYPTO
-       select CRYPTO_BLKCIPHER
-       select CRYPTO_AES
-       select CRYPTO_ECB
-       help
-         L2CAP (Logical Link Control and Adaptation Protocol) provides
-         connection oriented and connection-less data transport.  L2CAP
-         support is required for most Bluetooth applications.
-
-         Also included is support for SMP (Security Manager Protocol) which
-         is the security layer on top of LE (Low Energy) links.
-
-config BT_SCO
-       bool "SCO links support"
-       help
-         SCO link provides voice transport over Bluetooth.  SCO support is
-         required for voice applications like Headset and Audio.
-
-endif
-
 source "net/bluetooth/rfcomm/Kconfig"
 
 source "net/bluetooth/bnep/Kconfig"
index 9b67f3d..2dc5a57 100644 (file)
@@ -8,6 +8,5 @@ obj-$(CONFIG_BT_BNEP)   += bnep/
 obj-$(CONFIG_BT_CMTP)  += cmtp/
 obj-$(CONFIG_BT_HIDP)  += hidp/
 
-bluetooth-y := af_bluetooth.o hci_core.o hci_conn.o hci_event.o mgmt.o hci_sock.o hci_sysfs.o lib.o
-bluetooth-$(CONFIG_BT_L2CAP)   += l2cap_core.o l2cap_sock.o smp.o
-bluetooth-$(CONFIG_BT_SCO)     += sco.o
+bluetooth-y := af_bluetooth.o hci_core.o hci_conn.o hci_event.o mgmt.o \
+       hci_sock.o hci_sysfs.o l2cap_core.o l2cap_sock.o smp.o sco.o lib.o
index 35158b0..71791fc 100644 (file)
@@ -1,6 +1,6 @@
 config BT_BNEP
        tristate "BNEP protocol support"
-       depends on BT && BT_L2CAP
+       depends on BT
        select CRC32
        help
          BNEP (Bluetooth Network Encapsulation Protocol) is Ethernet
index d6b0382..94cbf42 100644 (file)
@@ -1,6 +1,6 @@
 config BT_CMTP
        tristate "CMTP protocol support"
-       depends on BT && BT_L2CAP && ISDN_CAPI
+       depends on BT && ISDN_CAPI
        help
          CMTP (CAPI Message Transport Protocol) is a transport layer
          for CAPI messages.  CMTP is required for the Bluetooth Common
index 86a9154..4deaca7 100644 (file)
@@ -1,6 +1,6 @@
 config BT_HIDP
        tristate "HIDP protocol support"
-       depends on BT && BT_L2CAP && INPUT && HID_SUPPORT
+       depends on BT && INPUT && HID_SUPPORT
        select HID
        help
          HIDP (Human Interface Device Protocol) is a transport layer
index 405a0e6..22e718b 100644 (file)
@@ -1,6 +1,6 @@
 config BT_RFCOMM
        tristate "RFCOMM protocol support"
-       depends on BT && BT_L2CAP
+       depends on BT
        help
          RFCOMM provides connection oriented stream transport.  RFCOMM
          support is required for Dialup Networking, OBEX and other Bluetooth