Browse Source

Bluetooth: hci_uart: Use generic functionality from Broadcom module

The new Broadcom Bluetooth support module provides generic functionality
for changing and checking the Bluetooth device address. Use these new
features instead of keeping a duplicate in the driver.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Marcel Holtmann 10 years ago
parent
commit
3e0ac12a1a

+ 1 - 0
drivers/bluetooth/Kconfig

@@ -111,6 +111,7 @@ config BT_HCIUART_INTEL
 config BT_HCIUART_BCM
 config BT_HCIUART_BCM
 	bool "Broadcom protocol support"
 	bool "Broadcom protocol support"
 	depends on BT_HCIUART
 	depends on BT_HCIUART
+	select BT_BCM
 	help
 	help
 	  The Broadcom protocol support enables Bluetooth HCI over serial
 	  The Broadcom protocol support enables Bluetooth HCI over serial
 	  port interface for Broadcom Bluetooth controllers.
 	  port interface for Broadcom Bluetooth controllers.

+ 0 - 17
drivers/bluetooth/hci_bcm.c

@@ -29,20 +29,3 @@
 #include <net/bluetooth/hci_core.h>
 #include <net/bluetooth/hci_core.h>
 
 
 #include "hci_uart.h"
 #include "hci_uart.h"
-
-int bcm_set_bdaddr(struct hci_dev *hdev, const bdaddr_t *bdaddr)
-{
-	struct sk_buff *skb;
-	int err;
-
-	skb = __hci_cmd_sync(hdev, 0xfc01, 6, bdaddr, HCI_INIT_TIMEOUT);
-	if (IS_ERR(skb)) {
-		err = PTR_ERR(skb);
-		BT_ERR("%s: BCM: Change address command failed (%d)",
-		       hdev->name, err);
-		return err;
-	}
-	kfree_skb(skb);
-
-	return 0;
-}

+ 3 - 1
drivers/bluetooth/hci_ldisc.c

@@ -44,6 +44,7 @@
 #include <net/bluetooth/bluetooth.h>
 #include <net/bluetooth/bluetooth.h>
 #include <net/bluetooth/hci_core.h>
 #include <net/bluetooth/hci_core.h>
 
 
+#include "btbcm.h"
 #include "hci_uart.h"
 #include "hci_uart.h"
 
 
 #define VERSION "2.3"
 #define VERSION "2.3"
@@ -299,7 +300,8 @@ static int hci_uart_setup(struct hci_dev *hdev)
 #endif
 #endif
 #ifdef CONFIG_BT_HCIUART_BCM
 #ifdef CONFIG_BT_HCIUART_BCM
 	case 15:
 	case 15:
-		hdev->set_bdaddr = bcm_set_bdaddr;
+		hdev->set_bdaddr = btbcm_set_bdaddr;
+		btbcm_check_bdaddr(hdev);
 		break;
 		break;
 #endif
 #endif
 	}
 	}

+ 0 - 4
drivers/bluetooth/hci_uart.h

@@ -128,7 +128,3 @@ int h5_deinit(void);
 #ifdef CONFIG_BT_HCIUART_INTEL
 #ifdef CONFIG_BT_HCIUART_INTEL
 int intel_set_bdaddr(struct hci_dev *hdev, const bdaddr_t *bdaddr);
 int intel_set_bdaddr(struct hci_dev *hdev, const bdaddr_t *bdaddr);
 #endif
 #endif
-
-#ifdef CONFIG_BT_HCIUART_BCM
-int bcm_set_bdaddr(struct hci_dev *hdev, const bdaddr_t *bdaddr);
-#endif